UNION ALL
在使用和必须填充一个表(由UNION
命令连接的表)时,我正面临 SQL Server (T-SQL) 的一种奇怪行为。
表格1:
Firstname Lastname Date
--------- -------- ----
Peter Pan 2013-01-21 12:29:55.000
Paul Am 2013-01-22 12:39:45.000
和表 2:
FN LN
--------- --------
Laura Loeb
Lisa Lefteye
我想对UNION ALL
两张桌子都做一个。这只能通过使用“假”第三列“填充”表 2 来实现(因为它没有“数据”列),如下所示:
SELECT
Firstname AS FName, Lastname AS LName, Date AS TheDate
FROM Table1
UNION ALL
SELECT
FN AS FName, LN AS LName, NULL AS TheDate
FROM Table2
我的问题是:SQL Server 给了我一条错误消息,告诉我它不能强制转换为DateTime
类型。
我 100% 确定Date
Table1 中列的数据类型设置为DateTime
,也允许使用 NULL 值。
我尝试设置一个虚拟日期,如下所示:
... FN AS FName, LN AS LName, '2013-03-08' AS TheDate ...
我尝试设置当前日期,如下所示:
... FN AS FName, LN AS LName, getdate() AS TheDate ...
以上都不起作用。
但是,我知道一般的解决方案(使用“NULL AS Columnname”填充缺失的列)有效......
有谁知道如何解决这个问题?
非常感谢您!