小编典典

在T-SQL中验证日期?

sql

我只想验证用户的给定输入

Declare @UserInput NVARCHAR(20)
set @UserInput = '26/07/2013'
select ISDATE(@UserInput)

即使日期有效,该日期也将返回false,因为日期为澳大利亚格式

我可以将最后一行更改为以下内容

select isdate(CONVERT(datetime, @UserInput, 103))

它的工作原理。但是,如果@Userinput是垃圾(即:-‘hello’),则最后一条语句将失败。无论用户输入什么内容,我怎样才能得到一个能验证为澳大利亚日期(dd
/ mm / yyyy)的东西?

谢谢


阅读 174

收藏
2021-04-28

共1个答案

小编典典

使用 SET DATEFORMAT 指定您希望输入日期的格式:

SET DATEFORMAT DMY;

Declare @UserInput NVARCHAR(20)
set @UserInput = '26/07/2013'
select ISDATE(@UserInput)

我倾向于在输入到达SQL Server之前执行此类验证,并确保任何日期变量都是日期。

2021-04-28