如何将SqlLite中的日期从m / d / y转换为Y-m-d,以便我可以使用strftime

时间:2016-04-29 19:21:21

标签: sql sqlite

我有一组数据正在导入SqlLite,但在插入之前并没有真正有机会对其进行操作。我正在努力计算"年龄"约会,但这在目前的格式中证明是非常困难的。

我正在寻找一个可以用来更新数据的选择,然后开始按照我想要的方式编写查询。

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 个答案:

答案 0 :(得分:1)

您可以使用以下update语句将日期格式更改为YYYY-MM-DD:

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 也可能是两位数。