sql - 有人可以解释为什么以下查询的功能不同吗?从字面上看,两者之间的唯一区别是

标签 sql date compare to-date to-char

除了第一个在最后一行有 >= 而第二个有 = 之外,下面的两个查询是相同的。然而第一个返回 129 行,而第二个返回 0。今天是 2016 年 11 月 15 日,所以我预计它们会返回相同的结果。 date_time的数据类型为date。

有人可以解释为什么简单地将运算符从 >= 更改为 > 会改变结果吗?谢谢,

select orderid
    from order_log
    where order_version = 0
    and description = 'Order Complete'
    and date_time **>=** to_date('11-15-2016', 'MM-DD-YYYY')

select orderid
    from order_log
    where order_version = 0
    and description = 'Order Complete'
    and date_time **=** to_date('11-15-2016', 'MM-DD-YYYY')

最佳答案

date_time 是一个时间戳(日期 + 时间),您没有恰好在午夜 (2016-11-15 00:00:00) 发生的事件。


select          sysdate
               ,case when sysdate = date '2016-11-16' then 'Y' else 'N' end as is_equal

 from           dual

SYSDATE             IS_EQUAL
2016-11-16 00:23:37 N

关于sql - 有人可以解释为什么以下查询的功能不同吗?从字面上看,两者之间的唯一区别是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40620450/

相关文章:

javascript - 将 html 元素插入文本字符串以匹配另一个 html 字符串

sql - 一种更优雅的聚合列的方式

sql - 在MariaDB上授予特权

mysql - 我想在 mySQL 中运行我的脚本,但在我运行它时它一直显示这个!错误 1215 (HY000) 在第 18 行 : Cannot add foreign key constraint

SQL - ROW_NUMBER () OVER (ORDER BY) 不起作用

c# - 有没有办法在 Noda Time 中表示部分日期?

date - 经典 Asp 日期

date - 如何使用 Powershell 根据最新日期从日志文件中提取最新行

python - Pandas 中两个数据框之间的差异

php - 如何在 PHP 中比较日期