如何在sqlite中使用sql将字符串转换为datetime

时间:2013-10-24 07:23:26

标签: sql sqlite datetime

如何使用string中的datetimesql转换为sqlite

在我的sqlite数据库中,puttime列为nvarchar类型,并将数据存储为null,空字符串,2013-10-23,2013-10-23 13:30:25,2013 -10-24 9:30:22

我使用下面的查询进行转换,但'2013-10-24 9:30:22'无法转换成功,怎么做:

select puttime, datetime(puttime) from tb_news

结果:

PutTime datetime(puttime)
2013-05-06          2013-05-06 00:00:00
2013-10-23          2013-10-23 00:00:00
2013-10-23 13:30:25 2013-10-23 13:30:25
2013-10-23 18:00:00 2013-10-23 18:00:00
2013-10-24 17:32:33 2013-10-24 17:32:33
2013-10-24 22:49:43 2013-10-24 22:49:43
2013-10-24 9:30:22  
2013-10-25 00:01:33 2013-10-25 00:01:33

感谢。

2 个答案:

答案 0 :(得分:5)

最近的日期/时间格式SQLite期望为YYYY-MM-DD HH:MM:SS

查看您的数据,它会发现只有偏差为YYYY-MM-DD H:MM:SS

因此,我们只需在需要时添加0

SELECT puttime, DATETIME(
    CASE SUBSTR(puttime, 14, 1) WHEN ':' THEN puttime -- Found ':' after HH
    ELSE SUBSTR(puttime, 1, 11)||'0'||SUBSTR(puttime, 12) END
) FROM tb_news

答案 1 :(得分:-4)

SimpleDateFormat format = new SimpleDateFormat(""dd-MM-yyyy");

SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");

date = df2.format(format.parse(str));

试试这个先生