Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL计算列,无煤,两个DateTime字段,索引_Sql_Sql Server 2008 - Fatal编程技术网

SQL计算列,无煤,两个DateTime字段,索引

SQL计算列,无煤,两个DateTime字段,索引,sql,sql-server-2008,Sql,Sql Server 2008,我的数据库中有以下两列: 交货日期(日期时间) 交付\u覆盖(日期时间) (我必须保留我做的其他事情的原始交付日期) 我创建了以下计算列 交付包装日期 公式:(合并(nullif([Delivery\u Override],'',[Delivery\u Date])) 现在我可以做如下选择: select * from Deliveries where Delivery_PackDate = '2019-09-24' 如果已填写,则自动选择覆盖日期,否则选择原始日期 问题是我想为它编制索引,

我的数据库中有以下两列:

交货日期(日期时间) 交付\u覆盖(日期时间)

(我必须保留我做的其他事情的原始交付日期)

我创建了以下计算列

交付包装日期 公式:
(合并(nullif([Delivery\u Override],'',[Delivery\u Date]))

现在我可以做如下选择:

select * from Deliveries where Delivery_PackDate = '2019-09-24' 
如果已填写,则自动选择覆盖日期,否则选择原始日期

问题是我想为它编制索引,但SQL不允许这样做,因为它是不确定的

我想我在这里做错了什么,我怎样才能正确地解决这个问题呢?有什么建议吗


谢谢。

问题是您正在转换为字符串。以下工作很好:

create table t (
    Delivery_Override datetime,
    Delivery_Date datetime
);

alter table t add dt as (coalesce(Delivery_Override, Delivery_Date)) persisted;

create index idx_t_dt on t(dt);
他是一把小提琴

没有值为
'

的日期/时间,您的表中有这些列。。。