2014-02-26 90 views
0
Edit Copy Delete 119  anand a f 1957-05-08 5678 s yyyy [email protected]  2014-02-17 11:42:39  1 
Edit Copy Delete 120  gangadhar m 1952-02-04 495  c xxxx [email protected]  2014-02-17 12:02:16  3,4 
Edit Copy Delete 124  ganesh r m 1991-09-04 9840 s zzzz [email protected] 2014-02-26 12:45:58  1 
Edit Copy Delete 125  manesh a m 1991-02-05 9841 s zzzzz [email protected]  2014-02-26 12:45:5 

我想獲取今天插入的最後兩行細節。我如何根據當前日期獲取數據。如何根據當前日期獲取數據?

這裏是我的查詢它是不是給需要的輸出..

SELECT * 
    FROM stud_enq 
WHERE date_time = GETDATE() 
+2

的數據庫? –

+0

SELECT * FROM stud_enq order by date_time limit 2? – StanislavL

+2

@StanislavL omg no – Alexander

回答

1

你需要考慮到你的date_time時間部分,如GETDATE()。假設SQL Server 2008或更高版本:

SELECT * 
    FROM stud_enq 
WHERE date_time >= CONVERT(date,GETDATE()) and 
     date_time < CONVERT(date,DATEADD(day,1,GETDATE())) 

選擇所有具有今天日期的值。

對於年齡較大的SQL Server,您可以使用:

SELECT * 
    FROM stud_enq 
WHERE date_time >= DATEADD(day,DATEDIFF(day,0,GETDATE()),0) and 
     date_time < DATEADD(day,DATEDIFF(day,0,GETDATE()),1) 

DATEADD/DATEDIFF只是去除時間部分一招。

+0

這工作得很好。非常感謝。你能解釋一下mysql的查詢嗎? – user3354698

+0

@ user3354698 - 我對mysql不太好,不幸的是,日期/時間處理和函數在數據庫系統之間差別很大。 –

+0

ok先生..反正感謝您的幫助。 – user3354698

0
SELECT TOP 2 * FROM stud_enq WHERE date_time = GETDATE() ORDER BY date_time DESC 
+0

誰降低了我的答案?什麼是錯誤 –

+0

我沒有,但從我讀到的問題,返回2行的要求是基於今天有兩行。如果今天在樣本數據中插入了3行,我相信他們會在結果中需要3行。如果'date_time'中的date *和*時間與'GETDATE()'返回的date *和* time完全匹配,'date_time = GETDATE()'只會匹配。 –

+0

I.e.他們對某人的建議做出的第一條評論是「限制在這裏不起作用,因爲我想要在當前日期插入所有細節」 –

0

使用此

SELECT * 
     FROM stud_enq 
    WHERE date_time >= DATEADD(day,DATEDIFF(day,0,GETDATE()),0) and 
      date_time < DATEADD(day,DATEDIFF(day,0,GETDATE()),1) 

這將覆蓋全天無需擔心在部分時間

+0

雖然這會返回24小時的數據,但它會返回數據(if現在運行)UTC時間今天07:50直到明天07:50 UTC。我認爲OP在今天開始的時候需要從午夜到下午的午夜。 –

+0

@Damien_The_Unbeliever ok先生,使用DATEDIFF部分編輯 – Rex

1

試試這個..

SELECT top 2 * 
    FROM stud_enq 
WHERE convert(varchar(20),date_time,101) = convert(varchar(20),GETDATE(),101) 
order by date_time desc 
+0

雖然*是一種刪除時間組件的方法,但它也完全排除了'date_time'列中任何索引的使用。 –