gpt4 book ai didi

sql - PostgreSQL -> SQLite : DATE_TRUNC Equivalent

转载 作者:行者123 更新时间:2023-12-03 16:16:52 27 4
gpt4 key购买 nike

星期五下午,我被炸了。所以 SQL 爱好者如何在 PostgreSQL 中采用以下 WHERE 子句并将其转换为 SQLite3 而不使用编译扩展:

WHERE
DATE_TRUNC('day', c.start_date) <= DATE_TRUNC('day', q.date) AND
DATE_TRUNC('day', c.end_date) >= DATE_TRUNC('day', q.date)

回顾 SQLite3 中的日期/时间函数,似乎它们仅用于字符串格式。希望我看到了一些错误。

最佳答案

SQLite 没有日期数据类型;它使用 strings or numbers反而。

要删除时间戳的时间部分,请使用 start of day modifier .
要使用的实际函数( datetime()julianday()strftime('%s') )取决于日期值的格式:

WHERE
datetime(c.start_date, 'start of day') <= datetime(q.date, 'start of date') AND
datetime(c.end_date, 'start of day') >= datetime(q.date, 'start of date')

在这种情况下,您可以只使用 date()函数,因为您不关心结果的实际格式,只关心它的比较方式:
WHERE
date(c.start_date) <= date(q.date) AND
date(c.end_date) >= date(q.date)

关于sql - PostgreSQL -> SQLite : DATE_TRUNC Equivalent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28638907/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com