将sql server查询更改为sqlite

yam*_*ams 5 sql-server sqlite

我正在将Sql Server查询转换为sqlite,我正在学习SQLite查询.无论这是我遇到困难的一个领域,那就是约会.

DATEADD(dd, 0, DATEDIFF(dd, 0, tblSomeTable.EventDate)) >= DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
Run Code Online (Sandbox Code Playgroud)

在sqlite中相当于什么?先感谢您.

事件日期字段是可接受的日期时间格式 - "YYYY-MM-DD HH:MM:SS.SSS"

Y.B*_*.B. 2

DateTime 在 SQLite 中存储为 TEXT,因此您可以只比较字符串:

CREATE TABLE tblSomeTable (EventDate TEXT);
INSERT INTO tblSomeTable (EventDate) VALUES
    (strftime('%Y-%m-%d %H:%M:%f', 'now', '-1 day')),
    (strftime('%Y-%m-%d %H:%M:%f', 'now'          )),
    (strftime('%Y-%m-%d %H:%M:%f', 'now', '+1 day'));

SELECT EventDate,
       substr(EventDate, 1, 10),
       strftime('%Y-%m-%d', 'now'),
       substr(EventDate, 1, 10) >= strftime('%Y-%m-%d', 'now')
FROM tblSomeTable;

SELECT EventDate,
       substr(EventDate, 1, 10),
       date(),
       substr(EventDate, 1, 10) >= date()
FROM tblSomeTable;
Run Code Online (Sandbox Code Playgroud)

两种情况的结果(在本次编辑之日:-)将是:

2016-01-14 12:34:56.789|2016-01-14|2016-01-15|0
2016-01-15 12:34:56.789|2016-01-15|2016-01-15|1
2016-01-16 12:34:56.789|2016-01-16|2016-01-15|1
Run Code Online (Sandbox Code Playgroud)