日期从sql server 2008中的datetime中提取

时间:2014-06-27 06:10:37

标签: sql sql-server-2008 date datetime

我有一个DateTime列,我只给存储过程一个日期,并根据SQL表中的列进行检查。但是列中的条目还包含日期时间,但我必须将列的唯一日期部分与给定输入进行比较。请回复

alter procedure [dbo].[db]
@date DateTime
As
begin
select * from [dbo].[production_schedule]
where DATEPART('YYYY',date)= DATEPART('YYYY-MM-DD',@date)
end;

EXEC [dbo].[db] '2002-07-01',1,0

我必须在程序中只提供日期,但我必须选择列日期中具有相同日期的那些行。

2 个答案:

答案 0 :(得分:1)

试试这个

select * from [dbo].[production_schedule]
where convert(date,date)= convert(date,@date)

答案 1 :(得分:0)

写为:

alter procedure [dbo].[db]
@date DateTime
As
begin
select * from [dbo].[production_schedule]
where convert ( varchar(10), date, 111) = convert (varchar(10),@date,111)
end
Go

-- When there's only one input parameter in the sproc then why have 3 comma separated 
-- inputs in exec statement?
EXEC [dbo].[db] '2002-07-01'

check demo here.