从 DATETIME 选择日期时的输出 <NULL> - SQLITE
OUTPUT <NULL> WHEN SELECTING DATE FROM DATETIME - SQLITE
我是 SQL 世界的新手,我正在疯狂地尝试弄清楚如何 SELECT 从 SQLITE 中的日期时间字段中获取日期。
示例:值 <11/11/2005 14:56>,我只想 select <11/11/2005> 每一行。
我尝试了 strftime()、date()、CAST() 和其他函数,但输出始终为 NULL。
例如,我尝试查询 SELECT strftime('%d/%m/%Y' , columnname) AS date FROM tablename;
输出:每行“NULL”
谁能帮我理解我做错了什么,我该如何解决?谢谢!!!
它总是 returns NULL 因为 MM/DD/YYYY 不是有效的 sqlite date format。将该列视为字符串并使用 substr
和 instr
删除时间部分。类似(没有保证,请查看文档!)
SELECT substr(columname,0,instr(columnname,' '))
回复“如何按日期降序排序”
这个问题是关于以 sqlite date/time 格式存储日期的一个很好的论据(最好的论据?)。 中有一个将 MM/DD/YYYY 转换为 YYYY-MM-DD(正确排序日期)的策略。
如果为时不晚,建议将日期存储更改为有效的 sqlite 日期格式。 strftime
可以根据自己的喜好来显示日期,排序会很准确。
我是 SQL 世界的新手,我正在疯狂地尝试弄清楚如何 SELECT 从 SQLITE 中的日期时间字段中获取日期。
示例:值 <11/11/2005 14:56>,我只想 select <11/11/2005> 每一行。
我尝试了 strftime()、date()、CAST() 和其他函数,但输出始终为 NULL。 例如,我尝试查询 SELECT strftime('%d/%m/%Y' , columnname) AS date FROM tablename; 输出:每行“NULL”
谁能帮我理解我做错了什么,我该如何解决?谢谢!!!
它总是 returns NULL 因为 MM/DD/YYYY 不是有效的 sqlite date format。将该列视为字符串并使用 substr
和 instr
删除时间部分。类似(没有保证,请查看文档!)
SELECT substr(columname,0,instr(columnname,' '))
回复“如何按日期降序排序”
这个问题是关于以 sqlite date/time 格式存储日期的一个很好的论据(最好的论据?)。
如果为时不晚,建议将日期存储更改为有效的 sqlite 日期格式。 strftime
可以根据自己的喜好来显示日期,排序会很准确。