假设我有一个日期2010-07-29.现在我想查看前一天的结果.怎么做
例如,
SELECT *
from table
where date = date("2010-07-29")
Run Code Online (Sandbox Code Playgroud)
前一天如何做而不更改字符串"2010-07-29"?
我搜索并从网上得到一些建议,我试过了
SELECT *
from table
where date = (date("2010-07-29") - 1 Day)
Run Code Online (Sandbox Code Playgroud)
但失败了.
OMG*_*ies 19
SELECT *
FROM TABLE t
WHERE t.date BETWEEN DATE_SUB('2010-07-29', INTERVAL 1 DAY)
AND '2010-07-29'
Run Code Online (Sandbox Code Playgroud)
如果要添加一天(并反转BETWEEN参数),请将DATE_SUB更改为DATE_ADD.
SELECT *
FROM TABLE t
WHERE t.date BETWEEN DATEADD(dd, -1, '2010-07-29')
AND '2010-07-29'
Run Code Online (Sandbox Code Playgroud)
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')
Run Code Online (Sandbox Code Playgroud)
我使用了BETWEEN,因为该date列可能是DATETIME(在MySQL和SQL Server上,与Oracle上的DATE相比),其中包括时间部分,因此等于意味着值必须完全相等.这些查询为您提供了一天的时间.
| 归档时间: |
|
| 查看次数: |
36694 次 |
| 最近记录: |