SQL: проверьте, больше ли столбец времени, чем системное время - PullRequest
1 голос
/ 28 апреля 2011

Я хотел бы знать, как проверить, превышает ли отметка времени в (столбце StartTime) системное время.Если больше, он должен сбросить отметку времени в NULL

Есть ли способ сделать это?

С уважением.

Ответы [ 5 ]

1 голос
/ 28 апреля 2011
  create trigger tbl_reset_date
  on tbl
  after insert
  as

  update t
  set time = null
  from tbl t
   join inserted i
     on i.id = t.id
  where i.time > getdate();
1 голос
/ 28 апреля 2011

В MySQL вы можете попробовать:

UPDATE table SET time = NULL
WHERE time>NOW()

Если вы хотите, чтобы это было автоматически, попробуйте это:

CREATE TRIGGER upd BEFORE INSERT ON `table` 
FOR EACH ROW BEGIN 
    IF NEW.time>NOW() THEN SET NEW.time=NULL; END IF; 
END;
1 голос
/ 28 апреля 2011
Declare @Now datetime = GETDATE()

Update tbl Set
    StartTime=NULL
Where StartTime > @Now
1 голос
/ 28 апреля 2011
update table set ts_field = null where ts_field > now()

это для mysql

0 голосов
/ 29 апреля 2011

Try ...

CREATE TRIGGER tr_Product_InsteadOfTrigger 
ON Product
INSTEAD OF INSERT
AS

  IF @@ROWCOUNT > 0 -- limit nested recursion if no work to do
  BEGIN

    SET NOCOUNT ON;

    INSERT INTO Product
    (
      ProductId,
      PTime 
    )
    SELECT 
      i.ProductId, 
      CASE 
        WHEN i.PTime > GETUTCDATE() 
        THEN NULL 
        ELSE i.PTime 
      END
    FROM 
      inserted i

  END -- if work to do

GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...