sql - 在 SQl 中搜索日期

标签 sql oracle date-comparison

我的表单中有一个日期选择器,可以在提交表单时生成一个开始日期和结束日期。两者的日期格式均为 '#date_format' => 'Y-m-d',。在我的 Oracle DB 中,我需要将这两个输入与日期格式 date('Y-m-d') 的列值 TIMESTAMP 进行比较。我的 SQL 查询是

SELECT TITLE 
FROM TABLE 
WHERE TIMESTAMP BETWEEN '2015-07-15' AND '2015-07-30' 
GROUP BY TITLE ORDER BY TITLE ASC

我可以这样搜索吗?我没有通过此查询得到任何结果。

最佳答案

WHERE TIMESTAMP BETWEEN '2015-07-15' AND '2015-07-30'

您正在将日期字符串进行比较。您必须使用TO_DATE将字符串显式转换为日期。

例如,

WHERE TIMESTAMP 
BETWEEN 
   TO_DATE('2015-07-15', 'YYYY-MM-DD') 
AND 
   TO_DATE('2015-07-30', 'YYYY-MM-DD')

当您只有固定文字格式的日期元素时,我更喜欢 ANSI 日期文字

DATE '2015-07-15'

使用 ANSI 日期文字可以用更少的代码编写上述查询:

WHERE TIMESTAMP 
BETWEEN 
   DATE '2015-07-15'
AND 
   DATE '2015-07-30'

关于sql - 在 SQl 中搜索日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31721547/

相关文章:

mysql - 不同的结果更新和选择使用加入 mysql

sql - 如何使用 Perl 检索临时表的 SQL 字段名称?

sql - 使用 SQL 获取每小时统计信息

mysql - 如何在mysql中从一种日期格式转换为另一种格式

java - 比较月份和年份的两个日期值

sql - 我们可以创建包含列的聚集索引吗

java - 如何在 jOOQ 查询中使用 Postgres 的 to_char?

sql - 收集索引的统计信息或删除创建?

oracle - 使用 ODBC 连接从 Excel VBA 宏更新 Oracle 表

javascript - 使用 $filter 进行日期比较不起作用