2017-08-20 297 views
4

我試圖從當前日期只有在這裏數據庫中獲取的記錄是我試圖BU從表中獲取任何記錄查詢:通過今天(當前)日期顯示數據的SQL查詢?

SELECT * 
FROM Transactions 
WHERE transaction_date = GETDATE(); 
+0

它比較不僅僅是日期,還有時間部分。我不認爲你會有日期+時間的確切交易。嘗試比較剛纔的日期部分不是日期和時間 –

+0

那麼我應該如何修改這個查詢先生你能幫我解決嗎? –

回答

2

只是比較日期部分

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

將* DATETIME轉換爲'DATE'而不是轉換爲**字符串將會*更好*總是使用**最合適的**數據類型 - 不要總是把所有東西都轉換成一個字符串,因爲它很簡單並且工作正常..... –

1

存儲在一個變量的日期和CONCAT它在查詢

見下圖:

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

它在「yyy-MM-dd」附近顯示語法錯誤 –

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 
相關問題