我有一个将字符串转换为datetime (101)
格式的函数。但是,当我转换此值时,它给我一个错误。
2016-03-01 00:00:00.0000000
错误是
Msg 241, Level 16, State 1, Line 2
Conversion failed when converting date and/or time from character string.
我的功能是..
ALTER FUNCTION [dbo].[ConvertToDate]
(
@Value nVarchar(MAX)
)
RETURNS DATETIME
AS
BEGIN
IF (@Value <> NULL OR @Value <> '')
BEGIN
DECLARE @dt DATETIME
SET @dt = CONVERT(DATETIME,@Value,101)
--SET @dt = CAST(@Value AS DATETIME(101))
RETURN @dt
END
RETURN NULL
END
问题是什么?
毫秒部分中的零太多。这很好
DECLARE @Value nVarchar(MAX)='2016-03-01 00:00:00.000'
SELECT CONVERT(DATETIME,@Value,101)
您可以尝试使用LEFT
这样的
DECLARE @Value nVarchar(MAX)='2016-03-01 00:00:00.000000'
SELECT CONVERT(DATETIME,LEFT(@Value,23),101)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句