【发布时间】:2020-03-13 16:13:48
【问题描述】:
我的 Sqllite 数据库查询中有这个,我想要...
select BoardingDate, strftime('%Y', date(BoardingDate)) from Hostels;
但在输出中它正确呈现BoardingDate 和输出
BoardingDate Month
-------------------------
8/1/2007 0:00:00 null
3/1/2008 0:00:00 null
8/1/2008 0:00:00 null
3/1/2009 0:00:00 null
这些是查询的当前行为
1. strftime('%Y', date('now')) - outputs correctly
2. strftime('%Y', date('2020-03-06')) - it works also
3. strftime('%Y', date(BoardingDate)) - Gives an error, it doesnt render at all..
4. strftime('%Y', date(Hostels.BoardingDate)) - The same error...
5. strftime('%Y', datetime(BoardingDate)) - Gives an error,
6. strftime('%Y', datetime(Hostels.BoardingDate)) - doesnt work....
它打印字符串,我不知道为什么。它以这种方式工作。
我正在尝试使用 julianday() 函数计算日期,但这是一种更长的方法
我现在很困惑。谢谢。
这是我在消息面板中遇到的错误
select BoardingDate, strftime('%Y',BoardingDate)
> no such column: BoardingDate
> Time: 0s
但第一列渲染正确,但函数列返回此错误 我尝试按照这些页面上的解决方案进行操作,但无济于事
get-month-from-datetime-in-sqlite
我已经尝试过此文档中的其他功能lang_datefunc.html 但是当我尝试将列引用作为参数传递时,我仍然遇到同样的错误 在函数中
【问题讨论】:
-
将日期格式更改为 YYYY-MM-DD 即可。
-
@forpas 但如何在查询字符串中将
8/1/2007转换为08/01/2017?有出路吗?如果您能提供代码帮助,我会很高兴。因为我正在从一个已经存在的数据库中提取数据。 -
一个非常复杂的字符串函数方式。
-
我的建议是将表导入一个对日期和字符串更灵活的数据库(如 MySql),然后在那里进行转换并重新导入 SQLite。