加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 如何在给定日期之前提前一天?

发布时间:2020-12-12 08:40:35 所属栏目:MsSql教程 来源:网络整理
导读:假设我有一个日期2010-07-29.现在我想检查一天的结果.怎么做 例如, SELECT * from table where date = date("2010-07-29") 前一天怎么做,而不改字符串“2010-07-29”? 我搜索并从网上得到一些建议,我试过 SELECT * from table where date = (date("2010-07-2
假设我有一个日期2010-07-29.现在我想检查一天的结果.怎么做

例如,

SELECT * 
  from table 
 where date = date("2010-07-29")

前一天怎么做,而不改字符串“2010-07-29”?

我搜索并从网上得到一些建议,我试过

SELECT * 
  from table 
 where date = (date("2010-07-29") - 1 Day)

但失败了.

解决方法

MySQL的
SELECT * 
  FROM TABLE t
 WHERE t.date BETWEEN DATE_SUB('2010-07-29',INTERVAL 1 DAY)
                  AND '2010-07-29'

如果要添加一天(并反转BETWEEN参数),请将DATE_SUB更改为DATE_ADD.

SQL Server

SELECT *
  FROM TABLE t
 WHERE t.date BETWEEN DATEADD(dd,-1,'2010-07-29')
                  AND '2010-07-29'

神谕

SELECT *
  FROM TABLE t
 WHERE t.date BETWEEN TO_DATE('2010-07-29','YYYY-MM-DD') - 1
                  AND TO_DATE('2010-07-29','YYYY-MM-DD')

我使用BETWEEN,因为date列可能是DATETIME(在MySQL和SQL Server上,与Oracle上的DATE),其中包括时间部分,因此等于意味着该值必须等于完全相同.这些查询给你一天的跨度.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读