【问题标题】:Hour validation in SQL ServerSQL Server 中的小时验证
【发布时间】:2019-12-18 02:27:10
【问题描述】:

有人可以告诉我如何告诉用户他必须输入一个小时以上08:30h 和以下22:30h

此代码导致“语法错误”错误,我无法继续前进,也不知道为什么。

我是 SQL 新手。非常感谢!!

【问题讨论】:

  • 你的sql没有where子句
  • 不要将代码添加为图像。将其粘贴到问题中。
  • 为什么将一天的开始/结束时间声明为字符串而不是 times?
  • 我以前用它作为日期时间,但也不知道为什么。

标签: sql sql-server datetime hour


【解决方案1】:

首先使用正确的数据类型。在一天中的时间使用time 而不是nvarchar。然后是强制数据必须满足某些规则的好方法,例如在 08:30 之后和 22:30 之前并且开始早于结束或同时开始。

CREATE TABLE hours
             (idhour nvarchar(2),
              starthour time,
              endhour time,
              CHECK (starthour > '08:30'
                     AND starthour < '22:30'
                     AND endhour > '08:30'
                     AND endhour < '22:30'
                     AND starthour <= endhour));

db<>fiddle

【讨论】:

  • 非常感谢,但我在 while 循环中哪里做错了?这就是我试图理解的。我应该把“where 子句”放在哪里,就像回复者告诉我的那样。
  • 当数据已经在表中时尝试验证数据的整个想法对我来说没有多大意义......
猜你喜欢
  • 2012-09-25
  • 2015-11-13
  • 1970-01-01
  • 2015-01-26
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多