我有一个简单的表单,允许用户为他们的业务创建服务。他们也可以使用相同的形式将交易附加到该服务上。
例子:
有两个隐藏的日期字段:
我的问题是,既然这是表单“插入”而不是更新,那么在DealCreated_Date上合并条件的正确方式是什么?
例如:
INSERT INTO MyTable ( ServiceTitle ,ServicePrice ,ServiceDescription ,ServiceCreated_Date ,ActivateDeal ,DealPrice ,DealCreated_Date ) VALUES ( @ServiceTitle ,@ServicePrice ,@ServiceDescription ,GETDATE() // For ServiceCreated_Date ,@ActivateDeal ,@DealPrice ,???????
因此,基本上,我想对DealCreated_Date字段使用GETDATE(),但前提是ActivateDeal为TRUE(1)
有简单的方法吗?
谢谢你的帮助。
我认为您只想使用CASE语句:
INSERT INTO MyTable ( ServiceTitle ,ServicePrice ,ServiceDescription ,ServiceCreated_Date ,ActivateDeal ,DealPrice ,DealCreated_Date ) VALUES ( @ServiceTitle ,@ServicePrice ,@ServiceDescription ,GETDATE() // For ServiceCreated_Date ,@ActivateDeal ,@DealPrice ,CASE WHEN @ActivateDeal THEN getDate() END )
这应该插入当前日期或NULL,具体取决于@ActivateDeal的值。根据其数据类型,您可能需要使用CASE WHEN@ActivateDeal=1。
SQL Fiddle Demo