SQLite在SQL语句中将字符串转换为日期

时间:2014-09-06 03:40:03

标签: sql database sqlite datetime select

我在尝试编写SQLite语句时遇到一些问题,以便在今天的日期之前获取某个列与where子句的总和:

SELECT SUM(amount) AS total, (substr(date, 7, 4) || '-' || substr(date, 4, 2) || '-' || substr(date, 1, 2)) AS Date FROM transactionRec 
WHERE type = 'W' AND Date BETWEEN DATE('now') AND DATE('now', '+1 day')

我想在进行比较之前将我的日期列转换为正确的日期格式。我的模拟数据如下:

enter image description here

顺便说一句,它应该返回我今天的最后一行记录,但不知何故,我使用上面的SQL语句得到空结果。

有什么想法吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

两个变化:

  1. 我在连接顺序中交换了
  2. 我使用了Date
  3. 而不是别名SomeDate


    SELECT SUM(amount) AS total, 
           (substr(date, 7, 4) || '-' || substr(date, 1, 2) || '-' || substr(date, 4, 2)) AS SomeDate 
    FROM transactionRec 
    WHERE type = 'W' AND SomeDate BETWEEN DATE('now') AND DATE('now', '+1 day')
    

    显然SQLite在区分date字段和Date()函数时没有问题,但在遇到Date列别名时会感到困惑。