SQL查询按今天(当前)日期显示数据?

时间:2017-08-20 06:39:54

标签: sql sql-server database

我试图从数据库中获取当前日期的记录,这里是我试过从表中获取记录的查询:

SELECT *
FROM Transactions
WHERE transaction_date = GETDATE(); 

4 个答案:

答案 0 :(得分:2)

您可以删除/重设时间到00:00,这样就可以进行今天的比较。

select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)

您可以使用今天的日期开始和结束来定义变量:

declare @TodayStart datetime = getdate()
declare @TodayEnd datetime = getdate()

set @TodayStart = DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) -- example: 2017-08-20 00:00:00.000
set @TodayEnd = DATEADD(ss, -1, DATEADD(dd, 1, @TodayStart)) -- example: 2017-08-20 23:59:59.000

因此,您在今天日期范围内获取所有交易的查询将变为:

Select *from Transactions
    WHERE transaction_date  between @TodayStart AND @TodayEnd

答案 1 :(得分:2)

只需比较日期部分

   Select *from Transactions
        WHERE 
    CONVERT(char(10), transaction_date  ,126)=CONVERT(char(10), getdate(),126);

答案 2 :(得分:1)

将日期存储在变量中并在查询中将其CONCAT

见下文:

var currentDate = DateTime.Now.ToString("yyyy-MM-dd");
query = "select * from table where Date = " + currentDate;

答案 3 :(得分:1)

这是当前日期,因此具有将来日期的记录不存在。您只需要获得大于今天00:00:00的所有交易即可。

SELECT * FROM `Transactions` WHERE transaction_date >= CURRENT_DATE+" 00:00:00";