SQL如何在LIKE命令中传递sysdate?

标签 sql oracle

查询结果

Select SYSDATE from DUAL

19-JUL-19

如何在like命令中传递这个日期来提取今天日期的所有元组

表格是这样的

ID             MSG_TYPE       CollectionDate
515587         GenOut         21-FEB-19 04.09.57.325772000 PM
515588         GenOut         19-JUL-19 01.06.15.307068000 PM
515589         GenOut         22-AUG-18 03.20.15.307069290 PM
515590         GenOut         19-JUL-19 12.03.09.873288000 PM

预期结果

ID             MSG_TYPE       CollectionDate
515588         GenOut         19-JUL-19 01.06.15.307068000 PM
515590         GenOut         19-JUL-19 12.03.09.873288000 PM

最佳答案

不要使用LIKE

一种方法是截断 collection_date,但这将禁用在该列上创建的索引。不过,如果该表中的行不多,您将不会注意到差异。

select * from your_table where trunc(collection_date) = trunc(sysdate)

更安全的方法是

select * from your_table
where collection_date >= trunc(sysdate)
  and collection_date <  trunc(sysdate + 1)

关于SQL如何在LIKE命令中传递sysdate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57109337/

相关文章:

sql - 选择数据并将其显示为列标题

oracle table_privileges值

sql - 可怕的 Oracle 更新性能

sql - 如何将 SQL 中的主键更改为 auto_increment?

mysql - 单个 mysql 选择连接表到 json 分层片段,怎么样?

SQL从字符串中删除字符

sql - 将 SQL 查询限制为每个组的前两个计数

mysql - MySQL 中空表的左连接返回错误

c# - SQL Order 结果有点按字母顺序 Entity Framework/C#

使用两个日期的 SQL 查询