73

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

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

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

4

5 回答 5

78

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

例如

where convert(varchar(10), submission_date, 102) 
    = convert(varchar(10), getdate(), 102)
于 2012-08-14T15:09:29.733 回答
62

你能试试这个吗?

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()))
于 2012-08-14T15:09:20.457 回答
8

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

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)
于 2012-08-14T15:11:10.217 回答
2

简单的出路是使用这样的条件(使用所需的日期> GETDATE()-1)

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

于 2018-11-05T06:39:57.117 回答
2

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

WHERE  CAST(Submission_date AS DATE) = CAST( curdate() AS DATE)
于 2021-01-02T07:05:27.630 回答