0

我想构建一个存储过程,它可以根据今天的日期是否在日期列表中返回值 0 或 1。我做了这样的事情:

USE [Alt_db]
GO
/****** Object:  StoredProcedure [dbo].[usp_ys]    Script Date: 09/05/2012 14:21:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE  PROCEDURE [dbo].[usp_Is_Holyday]
@Value varchar(50),
@Result bit OUTPUT
AS
Begin
If exists (select 1 from Holyday_Date where ISOCNTRYDESC=@Value and Holiday = CURDATE())
set @Result=1
Else
set @Result=0
End

但我有一个错误语法。

你有什么想法 ?

谢谢

4

1 回答 1

2

对于 SQL Server,请尝试:

Holiday = getdate()

或仅适用于日期部分:

cast(Holiday as date) = cast(getdate() as date)

对于 SQL Server 2005 或更早版本,请使用:

dateadd(day, 0, datediff(day, 0, Holiday)) = 
    dateadd(day, 0, datediff(day, 0, getdate()))
于 2012-09-05T13:10:51.767 回答