开发者社区> 问答> 正文

强制转换SQL列定义和默认值

我在SQL Server中具有下表创建定义:

CREATE TABLE [dbo].[EventLog] 
(
   [RawEvent] NVARCHAR(MAX) NOT NULL,
   [ReceivedDate] AS CAST(JSON_VALUE(RawEvent, '$.ReceivedTime') AS DATETIME)
)

当我收到JSON字符串时,该字符串具有ReceivedTime我解析出的字符串,并ReceivedDate在插入此记录时将其用作列的值。

目前正在运作。但是,当RawEventstring没有该属性时ReceivedTime,我想使用当前的SQL日期时间作为默认值,而不是现在正在使用的NULL。

在表定义中可以这样做吗?

展开
收起
祖安文状元 2020-01-05 17:58:14 435 0
1 条回答
写回答
取消 提交回答
  • 在SQL中,可以使用COALESCE提供默认值,而不是null

    COALESCE(CAST(JSON_VALUE(RawEvent, '$.ReceivedTime') AS DATETIME),GETDATE())
    
    2020-01-05 17:58:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载