gpt4 book ai didi

sql-server - SQL Server 将日期时间转换为不带 null 的日期

转载 作者:行者123 更新时间:2023-12-02 13:37:36 26 4
gpt4 key购买 nike

我有一个像这样的存储过程:

select 
TransactionDate
from
(select
cast(TransactionDate as Date) as TransactionDate
from RetailTransaction) t

但是,这使得外部选择的 TransactionDate 列可为空,而 RetailTransaction.TransactionDate 列不为空。

RetailTransaction.TransactionDate 定义/设计:

enter image description here

内部选择:

Inner Select

外部选择:

Outer Select

即使添加 isnullcoalesce SQL Server/SSMS 仍然显示外部选择 TransactionDate 列仍然可为空。

select 
TransactionDate
from
(select
isnull(cast(TransactionDate as Date), getdate()) as TransactionDate
from
RetailTransaction) t

Example 2

如何使 TransactionDate 列不可为空?

请注意,数据库位于 Azure 上,兼容性级别为 100 (SQL Server 2008)。

编辑:

在外部选择上添加 isnull 仍然会使该列对于外部嵌套查询可以为空:

outer-nested-query

最佳答案

是的,它对不可空列显示可为空的原因是因为您正在根据 isnull 条件和其他条件计算外部选择。

在此表中,Email 不是可为空的列,现在如果我在内部查询中给出 Isnull 条件,它将像这样。

enter image description here

现在如果我不给出任何条件就会像这样。

enter image description here

您也可以引用此链接以获取详细说明。

https://dba.stackexchange.com/questions/114260/why-is-a-not-null-computed-column-considered-nullable-in-a-view

关于sql-server - SQL Server 将日期时间转换为不带 null 的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54032669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com