我有一个带有多个“日期”列(“开始日期”,“结束日期”)的事件表。我需要根据给定的日期查询并获取记录。 例如,如果我以5月11日(星期六)作为endDate运行查询,则它应返回ID为8和12的行
我尝试了以下查询,但没有结果
SELECT *
FROM EVENTS
WHERE startDate BETWEEN '2019-05-09 00:00:00.00' AND '2019-05-09 23:59:59.999'
答案 0 :(得分:1)
如果您将列存储为日期,则应该可以使用:
WHERE startDate >= DATE '2019-05-09' AND
startDate < DATE '2019-05-10'
但是,您的日期看起来像字符串。我建议先修复数据模型。但是,您也可以使用字符串操作:
WHERE startDate LIKE '%May 09 2019%'
答案 1 :(得分:0)
您日期的数据类型似乎是带有给定格式的时间戳。如果要查询数据库,则应首先将字符串转换为时间戳或所需的任何数据类型。
现在,似乎假设您的startDate和endDate的数据类型是时间戳,请尝试
SELECT *
FROM EVENTS
WHERE startDate
BETWEEN TO_TIMESTAMP('2019-05-09 00:00:00.00','YYYY-MM-DD HH24:MI:SS.FF')
AND TO_TIMESTAMP('2019-05-09 23:59:59.999','YYYY-MM-DD HH24:MI:SS.FFF')