问题
How can i Convert DateTime2 to DateTime from Stored Procedure Executed Result ? I have a procedure which will execute a dynamically formed sql statement which will have an output of various columns in which there are some datetime2 data types. How can I change that datetime2 to datetime because I haev to assign this procedure as data source to a crystal report but crystal report converts datetime2 to string and string can't do required logic in report. So I want the procedure to give datetime rather than datetime2.
I guess temp tables might help me but not sure how to proceed.. please help..
回答1:
Assuming the DateTime2 field string looks like it does in MS SQL/ISO 8601 (see datetime2 (Transact-SQL)): "2007-05-02T19:58:47.1234567", you can pull out the needed parts of the string and then use CDate
or CDateTime
to convert them to dates or datetimes.
If IsDate(left({Results.DT2Field}, 10))
Then
CDate(left({Results.DT2Field}, 10));
or for DateTime
If IsDateTime(left({Results.DT2Field}, 10) + " " + mid({Results.DT2Field},12,8))
Then
CDateTime(left({Results.DT2Field}, 10) + " " + mid({Results.DT2Field},12,8));
The results of the above are your converted values.
来源:https://stackoverflow.com/questions/15555732/convert-datetime2-to-datetime-from-stored-procedure-executed-result