当前位置: 首页 > 面试题库 >

在T-SQL中验证日期?

白泽语
2023-03-14
问题内容

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

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

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

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

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

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

谢谢


问题答案:

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

SET DATEFORMAT DMY;

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

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



 类似资料:
  • 问题内容: 我有一列以()格式保存。我需要验证如果该月在30天内结束,那么没有报告损失日期为31的损失。我有数百万条记录。帮助将不胜感激。 查询应返回最后一个无效记录,因为200806在30天内结束。 问题答案: 对于您的特定问题,以下内容将返回错误的行: 根据您的输入界面,您可能需要重复31个月的几个月,以显示大于31的值。 2月有点棘手。逐步开始,确定超过29天的所有2月条目,您可以立即删除/

  • 主要内容:GETDATE (),DATEPART(),DATEADD(),DATEDIFF(),CONVERT ()在 T-SQL 中,日期函数用于生成日期和时间的查询。 GETDATE () GETDATE()返回当前日期和时间。 GETDATE ()函数的语法 — 示例 该查询将返回 T-SQL 中的当前日期。 DATEPART() 它给出了日期或时间的一部分。 DATEPART()函数的语法 - 示例 该查询在 T-SQL 中返回当月的一部分。 DATEADD() 它通过减去或加上日期和时

  • 问题内容: 我正在尝试对此表进行查询: 我想获得输出: 我想得到那个结果,所以我会知道什么时候开始赚钱,什么时候停止钱。我还对开始花钱之前的月份数(这解释了第一行)以及停止钱的月份数(这解释了为什么我也对2013年7月至2013年8月的第三行感兴趣)感兴趣。 )。 我知道我可以在日期上使用min和max,在金额上使用sum,但是我不知道如何以这种方式划分记录。 谢谢! 问题答案: 这是一个主意(和

  • 问题内容: 如何在where子句中检查的日期中增加一个月? 例如: 问题答案:

  • 问题内容: 我想在Java中将给定的日期格式验证为yyyyMMddHHmmss。 条件: 它应符合格式yyyyMMddHHmmss。 它应该验证当前日期。 它应验证小时数,该小时数可以与当前小时数相差+3小时或-3小时。 如果满足所有三个条件,则Java方法应返回true。 我当前的代码仅验证yyyyMMddHHmmss格式。 我当前的代码 问题答案: 使用其他两个日期(提前三个小时和之后三个小时

  • 问题内容: 如何在SQL(T-SQL)中构造本机日期数据类型值? 我添加了一些示例,但请提供您自己的示例。我的示例假定月份和年份以整数值存储(或随时可用),但是 您的 示例可能假定日期和月份(或其他形式)以文本存储。我看不到未来。给我一个惊喜 问题答案: 为什么将输入数据作为字符串,最明显(因此不足为奇,对不起)的解决方案之一是: