首页 > 解决方案 > 按生日 sql 排序

问题描述

我正在处理一张桌子student,我想选择 90 年代出生的学生。这就是我尝试这样做的方式:

dbGetQuery(con, 
    "SELECT name, forname, bdate 
    FROM student 
    WHERE (bdate < 1990.01.01) OR (bdate > 1999.12.31) 
    ORDER BY id"
)

但我收到此错误:

result_create(conn@ptr, statement) 中的错误:“.01”附近:语法错误。

标签: sql

解决方案


日期输入不正确。您没有提及您使用的是哪个数据库,所以我将参考 SQL 标准。你应该:

  • 用单引号将文字日期括起来。
  • 将单词DATE添加到日期值。
  • 不需要额外的括号。

您的 SQL 查询应如下所示:

SELECT name, forname, bdate 
FROM student 
WHERE bdate between date '1990-01-01' and date '1999-12-31'
ORDER BY id

推荐阅读