我有一组要导入到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))
我猜是否有一种方法可以将日期转换为正确的格式并在一个查询中计算年龄,这可以节省一个步骤,但是到目前为止我还没有找到一种方法。
最佳答案
您可以使用以下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也可以是两位数。