2014-02-26 106 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'列中任何索引的使用。 –