如何根据当前日期获取数据?

时间:2014-02-26 07:27:11

标签: sql sql-server

Edit  Copy  Delete  119     anand   a   f   1957-05-08  5678    s   yyyy    anand_abc@gmail.com     2014-02-17 11:42:39     1
Edit  Copy  Delete  120     gangadhar   m   1952-02-04  495     c   xxxx    gang_v@yahoo.com        2014-02-17 12:02:16     3,4
Edit  Copy  Delete  124     ganesh  r   m   1991-09-04  9840    s   zzzz    gan_bab_raj@yahoo.com   2014-02-26 12:45:58     1
Edit  Copy  Delete  125     manesh  a   m   1991-02-05  9841    s   zzzzz   manesh.25@gmail.com     2014-02-26 12:45:5

我想获取今天插入的最后两行详细信息。如何根据当前日期获取数据。

这是我的查询,它没有提供所需的输出..

SELECT * 
  FROM stud_enq 
 WHERE date_time = GETDATE()

4 个答案:

答案 0 :(得分: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只是删除时间组件的技巧。

答案 1 :(得分:1)

试试这个..

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

答案 2 :(得分:0)

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

答案 3 :(得分: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)

这将涵盖整整一天而不用担心时间部分