如何从存储过程执行的结果中将DateTime2转换为DateTime?我有一个程序将执行一个动态形成的sql语句,该语句将具有各种列的输出,其中有一些datetime2数据类型。如何将datetime2更改为datetime,因为我将此过程作为数据源分配给水晶报表,但是水晶报表将datetime2转换为字符串,字符串不能在报表中执行所需的逻辑。所以我希望程序给出datetime而不是datetime2。
我想临时表可能对我有帮助,但不知道如何继续......请帮助..
答案 0 :(得分:1)
假设DateTime2字段字符串与MS SQL / ISO 8601中的字符串(请参阅datetime2 (Transact-SQL)):“2007-05-02T19:58:47.1234567”一样,您可以拉出字符串所需的部分,然后使用CDate
或CDateTime
将它们转换为日期或日期时间。
If IsDate(left({Results.DT2Field}, 10))
Then
CDate(left({Results.DT2Field}, 10));
或DateTime
If IsDateTime(left({Results.DT2Field}, 10) + " " + mid({Results.DT2Field},12,8))
Then
CDateTime(left({Results.DT2Field}, 10) + " " + mid({Results.DT2Field},12,8));
以上结果是您转换后的值。