我有一个问题转换日期在SQL Server 2008中SQL服务器 - 日期转换
的价值,我将看起来像这样:30-NOV-44 08.00.00.000000000
结果我回来是这样的:2044-11-30 00:00:00.000
我正在使用的代码如下:
SELECT TOP 1000 [USER_ID]
,CONVERT(datetime,SUBSTRING([DATEOFBIRTH],0,11),112) AS ConvertedDate
,[DATEOFBIRTH]
FROM [IAM_Perf].[dbo].[01_Data]
WHERE DATEOFBIRTH IS NOT NULL
无论我在CONVERT函数上使用什么参数,我都会得到相同的格式而且很多日期正在转化为未来?!
结果做改变,当我在CONVERT的第一个参数日期和日期时间之间进行切换,但它使对不正确的结果没有任何影响。
我现在用的子功能,否则它不会转换价值,并引发此错误:
Msg 241, Level 16, State 1, Line 1 Conversion failed when converting date and/or time from character string.
我不知道如何解决这个问题,我不能guaruntee格式将始终保持不变或者别的,我只想手动使用一些T-SQL
任何一个有什么想法重新格式化?
感谢,
马特
作为补充,您必须对日期进行子串处理,因为时间不是包含所有句点的有效格式。如果您查看CONVERT函数的文档,您将会看到SQL不会将日期**转换为**,而只是一段时间。简而言之,只要SQL格式与CONVERT文档中的格式相同,SQL就只会将字符串转换为日期时间。 – Jim 2011-04-20 12:28:15
正是我在找什么,教育的回应。 – Yoda 2011-04-20 12:39:28