当将日期时间转换为日期时,为什么SQLite3仅返回年份而不返回完整日期?

问题描述 投票:1回答:1

我知道您可以使用date() function将日期时间转换为日期:

sqlite> select date('2000-01-01 10:00:00');
2000-01-01

但是为什么SQLite3's cast expression如in>

sqlite> select cast('2000-01-01 10:00:00' as date);
2000

仅返回年份?

即使使用显式的datetime()设置也仅返回年份:

sqlite> select cast(datetime('2000-01-01 10:00:00') as date);
2000

或:

sqlite> select cast(datetime('now') as date);
2019

查看Postgresql,它可以同时解决这两个问题:

postgresql> select date('2000-01-01 10:00:00');
2000-01-01

postgresql> select cast('2000-01-01 10:00:00' as date);
2000-01-01

对SQLite3的技术解释是什么-对我来说是意外的-行为?

我知道您可以使用date()函数将日期时间转换为日期:sqlite> select date('2000-01-01 10:00:00'); 2000-01-01但是,为什么SQLite3的强制转换表达式(如sqlite>中的select)...

sqlite date datetime casting type-conversion
1个回答
3
投票

对于SQLite,没有Date数据类型。如他们的文档中所述:https://www.sqlite.org/datatype3.html