【问题标题】:sqlite3 date and interval functionssqlite3 日期和间隔函数
【发布时间】:2010-06-13 17:41:23
【问题描述】:

不知sqlite3是否支持区间功能。以下语句被PostgreSQL接受,但是sqlite3解析失败;

select
 ...
from 
 orders
where
 ...
 and o_orderdate < date '1995-03-01' + interval '3' month 

错误:第 4 行附近:“'1995-03-01'”附近:语法错误

然后,我稍微修改了一下语句,比如;

and o_orderdate < date('1995-03-01') + interval '3' month

这次的错误是; 错误:第 4 行附近:“'3'”附近:语法错误

不幸的是,同样的技巧不适用于区间函数,即

and o_orderdate < date('1995-03-01') + interval('3' month)

and o_orderdate < date('1995-03-01') + interval('3') month

甚至

and o_orderdate < date('1995-03-01') + interval(3 month)

仍然给我语法错误。

也许 sqlite3 不支持区间函数,或者我在它的使用中遗漏了什么?

非常感谢

【问题讨论】:

    标签: sql sqlite datetime


    【解决方案1】:
    and o_orderdate < date('1995-03-01', '+3 month')
    

    reference of date and time functions in SQLite

    【讨论】:

      【解决方案2】:

      试试这个:

      and date(o_orderdate) < date('1995-03-01','+3 month')
      

      为了计算日期,你必须通知 SQLite 你的数据库字段是一个日期:date(o_orderdate)

      SQLite 语法非常不灵活,因此请务必确保 + 号与以下数字之间没有空格:'+3 month'

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-17
        • 2023-03-29
        • 1970-01-01
        • 1970-01-01
        • 2022-11-03
        • 1970-01-01
        • 1970-01-01
        • 2021-09-28
        相关资源
        最近更新 更多