【问题标题】:I need a sql code that checks that one date field precedes another date field我需要一个 sql 代码来检查一个日期字段是否在另一个日期字段之前
【发布时间】:2017-04-24 05:14:51
【问题描述】:

我需要一个 sql 代码来检查一个日期字段是否在另一个日期字段之前。我如何编写该代码我需要一个示例。

【问题讨论】:

  • 我们不是代码编写服务。看看别处。
  • 您使用的是哪个 DBMS?您是想在选择期间这样做,还是想创建一个在插入时验证数据的约束?
  • 选择 case when datefield1
  • @a_horse_with_no_name 抱歉,我是新手。我正在使用 sql server 2014 我想创建一个在插入时验证数据的约束。

标签: sql sql-server validation date


【解决方案1】:

如果您想停止输入无效日期。只需使用以下代码在该表上触发即可。

    CREATE TRIGGER [TriggerName]
       ON  [YourTableName]
AFTER  INSERT
AS 

if exists(select 1 from inserted i where i.DateColumn1>i.DateColumn2)
begin
    rollback
    RAISERROR ('INVALID DATES', 16, 1);
end

或者,如果您只想比较日期,请使用简单的比较运算符,例如

例如:> 或

【讨论】:

    【解决方案2】:

    我试过了,它似乎可以工作

    use RESERVATIONS
    alter table Bookings
    add constraint chk_BookinganDepatureDate check(BookingDate<DepartureDate)
    

    【讨论】:

      【解决方案3】:
      Select case when datefield1 < datefield2 then 'Yes' else 'No' end
      

      【讨论】:

        猜你喜欢
        • 2021-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多