我正在尝试编写存储过程以获取当前日期的记录,但我无法这样做。我创建了一个用于记录显示的最新版本,并尝试修改它。
以下是代码:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[SP_SELECTTODAYRECORDS_Test]
AS
BEGIN
SELECT col_Source as 'country',
col_FirstName +' '+col_LastName as 'name',
description as 'state' ,
col_county
from tbl_Info_Test, tbl_CountySite
where col_Pic is not null
and col_Source = sourcecountry
and ISDATE(col_BookDate) = 1
order by CONVERT(datetime, col_BookDate) DESC
END
答案 0 :(得分:1)
如果您正在尝试获取今天日期的报告,那么您可以将转换功能与GetDate()一起使用。
如果您在SP中添加以下条件,则会给出col_BookDate为今天日期的记录。
CONVERT(VARCHAR(10),col_BookDate,101)=CONVERT(VARCHAR(10),GETDATE(),101)
答案 1 :(得分:1)
日期字段组合了日期和时间信息。要选择当前日期的记录,您必须省略时间部分。一种方法是从现场移除时间部分。请参阅以下链接:
Most efficient way in SQL Server to get date from date+time?
其他方法是选择当前日期开始(00:00)和第二天开始之间的所有记录:
... WHERE DateField >= @Date AND DateField < DATEADD(d, 1, @Date)