日期时间列等于今天日期的SQL?

时间:2012-08-14 15:04:43

标签: datetime sql-server-2000

如何从创建日期为今天日期的数据库中获取记录?

SELECT [Title], [Firstname], [Surname], [Company_name], [Interest] 
FROM [dbo].[EXTRANET_users] 
WHERE DATE(Submission_date) = DATE(NOW())

使用sql server 2000时,这不起作用,提交日期是日期时间字段

5 个答案:

答案 0 :(得分:43)

看起来您正在使用SQL Server,在这种情况下GETDATE()current_timestamp可能会对您有所帮助。但您必须确保比较系统日期的日期格式匹配(时区,粒度等)

e.g。

where convert(varchar(10), submission_date, 102) 
    = convert(varchar(10), getdate(), 102)

答案 1 :(得分:27)

你能试试吗?

SELECT [Title], [Firstname], [Surname], [Company_name], [Interest] 
FROM [dbo].[EXTRANET_users] 
WHERE CAST(Submission_date AS DATE) = CAST(GETDATE() AS DATE)

T-SQL实际上没有像C#那样的“隐含”转换 - 您需要明确使用CAST(或CONVERT)。

另外,使用GETDATE()CURRENT_TIMESTAMP获取“现在”的日期和时间。

更新:,因为您正在使用SQL Server 2000 - 到目前为止,这些方法都没有奏效。试试这个:

SELECT [Title], [Firstname], [Surname], [Company_name], [Interest] 
FROM [dbo].[EXTRANET_users] 
WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, submission_date)) = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))

答案 2 :(得分:4)

可能有另一种方式,但这应该有效:

SELECT [Title], [Firstname], [Surname], [Company_name], [Interest] 
FROM [dbo].[EXTRANET] 
WHERE day(Submission_date)=day(now) and 
     month(Submission_date)=month(now)
     and year(Submission_date)=year(now)

答案 3 :(得分:0)

简便的方法是使用这样的条件(使用所需日期> GETDATE()-1)

您的sql语句“特定于日期”> GETDATE()-1

答案 4 :(得分:0)

获取所有记录创建日期为今天日期的记录使用 WHERE 子句后的代码

WHERE  CAST(Submission_date AS DATE) = CAST( curdate() AS DATE)