像下面一样,我正在尝试使用数据库名称作为前缀来访问系统功能CAST(),但无法正常工作。
1
错误:EOF
用'sys'或'..'替换'dbo'无效,并且看来CAST仅在没有任何前缀的情况下独立工作。
那两个数据库具有不同的兼容级别,因此输出是不同的,这是我想要一次性捕获的内容。
请问有人知道如何使它工作吗?
答案 0 :(得分:2)
如果要显示datetime
至datetime2
的计算方式有何不同,则需要在具有不同兼容性设置的2个不同数据库的上下文中运行语句,如下所示:
CREATE DATABASE Test2019DB; --I am Running 2019 Preview Edition
GO
CREATE DATABASE Test2012DB;
GO
ALTER DATABASE Test2012DB SET COMPATIBILITY_LEVEL = 110;
GO
USE Test2019DB;
GO
SELECT CONVERT(datetime2(7),CONVERT(datetime,'2019-11-04T11:23:47.123')) AS DT2_2019;
GO
USE Test2012DB;
GO
SELECT CONVERT(datetime2(7),CONVERT(datetime,'2019-11-04T11:23:47.123')) AS DT2_2012;
GO
USE master;
GO
--clean up
DROP DATABASE Test2019DB;
DROP DATABASE Test2012DB;
返回值:
DT2_2019
2019-11-04 11:23:47.1233333
DT2_2012
2019-11-04 11:23:47.1230000