8

我有一个关于在感染日期之前获取多行的问题:

patientID   Appt_reason dateofProcedure
1                        1/2/2016
1                        1/3/2016
1             infectoin  1/4/2016
2                        3/1/2016
2                        3/3/2016
3                        3/4/2016
3             infectoin  3/5/2016
3                        3/6/2016
3                        3/7/2016
5                        2/2/2016
5             infectoin  2/3/2016
5                        2/4/2016   

我需要这样的行

patientID   Appt_reason dateofProcedure
1                       1/2/2016
1                       1/3/2016
1          infectoin    1/4/2016
3                       3/4/2016
3          infectoin    3/5/2016
5                       2/2/2016
5          infectoin    2/3/2016

有人知道答案吗?谢谢

4

1 回答 1

12
SELECT
    patientID,
    Appt_reason,
    dateOfProcedure
FROM
    tableName
WHERE
    dateOfProcedure < '2016-04-03'

注意我使用的是 ISO-8601 格式,它是明确的,并且被所有现代数据库系统支持。

请注意,它使用的是<(小于)运算符而不是<=(小于或等于),因为在 SQL 中,日期文字值可以表示日期时间值,'2016-02-01' >= '2016-02-01 01:00'实际上也是如此false,因为'2016-02-01'隐藏的时间组件等于午夜,凌晨 1 点是午夜之后。

于 2016-11-04T03:29:38.913 回答