2016-04-29 7 views
1

SqlLiteにインポートする一連のデータがありますが、挿入前にそれを操作する機会はありません。私は日付の年齢を計算しようとしていますが、現在の形式では非常に困難です。strftimeを使用できるように、SqlLiteの日付をYmdに変換するには

私はデータを更新し、私が望むようにクエリを書くのに使うことができる選択を探しています。

Data Samples 
9/20/1983 
2/18/1986 
8/1/1994 
5/29/1999 

Desired 
1983-09-20 
1986-02-18 
1994-08-01 
1999-05-29 

私はその形式でデータを持っていたら、私が使用して日付が計算されます、次の

(strftime('%Y', 'now') - strftime('%Y', Born)) - (strftime('%m-%d', 'now') < strftime('%m-%d', BOrn))

私は適切なフォーマット計算に日付をキャストする方法があるかどう推測1つのクエリで年齢、ステップを保存するが、私はこれまでの方法を見つけることができませんでした。

答えて

1

あなたはYYYY-MM-DDに日付の書式を変更するには、次のupdateステートメントを使用することができます

update t 
set Born = 
     substr(Born, -4) || '-' || 
     substr('0' || substr(Born, 1, instr(Born, '/')-1), -2) || '-' || 
     substr('0' || substr(Born, instr(Born, '/')+1, 
            length(Born)-5-instr(Born, '/')), -2) 
where substr(Born, -5, 1) = '/' 
and Born LIKE '%/%/%' 

where句がD/M/YYYY形式を持っている唯一の更新日付にありdおよびmは、2桁であってもよい。

+0

日付は文字列として格納されているとみなしています。私はそれが '日付'として保存されていると思います。 – wallyk

+0

Sqliteには日付ストレージクラスがありません。 – trincot

+0

完璧、ありがとう! – AceoStar

関連する問題