【问题标题】:OUTPUT <NULL> WHEN SELECTING DATE FROM DATETIME - SQLITE从日期时间选择日期时输出 <NULL> - SQLITE
【发布时间】:2021-03-27 11:49:05
【问题描述】:

我是 SQL 世界的新手,我正在疯狂地试图弄清楚如何从 SQLITE 中的日期时间字段中选择日期。

示例:值 ,我只想为每一行选择 。

我尝试了 strftime()、date()、CAST() 和其他函数,但输出始终为 NULL。 例如,我尝试查询 SELECT strftime('%d/%m/%Y' , columnname) AS date FROM tablename; 输出:每一行都为“NULL”

有人可以帮助我了解我做错了什么以及我该如何解决它?谢谢!!!

【问题讨论】:

  • 列是什么类型的?如果是日期时间,选择列作为日期是否有效?

标签: sqlite date datetime null strftime


【解决方案1】:

它总是返回 NULL,因为 MM/DD/YYYY 不是有效的 sqlite date format。将列视为字符串并使用substrinstr 删除时间部分。类似的东西(不保证,检查文档!)

SELECT substr(columname,0,instr(columnname,' '))

重新评论“如何按日期降序排列

这个问题是一个很好的论据(最好的论据?)以 sqlite 日期/时间格式存储日期。 this post 中有一个策略用于将 MM/DD/YYYY 转换为 YYYY-MM-DD(正确排序日期)。

如果还不算太晚,建议将日期存储更改为有效的 sqlite 日期格式。 strftime可以根据需要显示日期,排序准确。

【讨论】:

  • 您好!抱歉再次打扰您,但我想知道您是否知道如何按日期降序排列,因为我将列视为字符串。例如:我尝试 ORDER BY datestring DESC 并且由于它不是日期格式它没有以正确的顺序输出。
  • 添加到答案中。
猜你喜欢
  • 2020-09-21
  • 2013-10-02
  • 2019-06-20
  • 1970-01-01
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
相关资源
最近更新 更多