如何在查询sqlite时格式化DateTime列?

时间:2014-02-11 08:57:13

标签: android sqlite datetime

我希望我的日期时间表列为%Y-%m-%d %H:%M:%S格式

我正在使用

SELECT AIRPORT_NAME , strftime('%Y-%m-%d %H:%M:%S', 'CREATETS')as crts FROM AIRPORT_MASTER where AIRPORT_MASTER_ID = 1;

CREATETS 是我的日期时间列,数据格式为“21-03-2011 12:00:00.000000”格式

这作为查询,但在我的情况下不能正常工作,sqlite在这种情况下不显示任何错误但没有输出 帮我搞定

“2011-03-21 08:55:36”作为输出格式

1 个答案:

答案 0 :(得分:3)

首先,'CREATETS'是字符串文字,而不是列名。如果您需要引用列,请删除''引号。

其次,21-03-2011 12:00:00.000000不是time string as understood by sqlite,尝试使用datetime函数转换它将导致null。

从技术上讲,可以使用SUBSTR()将日期时间值转换为sqlite理解的时间字符串,以提取部分值并重新排序字段。

但是,SQL不适合放置您的演示文稿/格式代码。请在Java代码中执行此操作。此外,如果您只是以“原始”格式存储时间戳,例如unix时间戳(自纪元以来的秒数)或Java毫秒时间戳而不是格式化字符串,这将更容易。