sql - 从 sql server 中的字符串转换日期和/或时间时转换失败

标签 sql sql-server

我有一个函数可以将字符串转换为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

问题是什么?

最佳答案

您的数据有问题。它没有转换。 你的数据应该是这样的

'2016-03-01 00:00:00.0000000'

但是你可以这样改变你的数据

'2016-03-01 00:00:00.000'

关于sql - 从 sql server 中的字符串转换日期和/或时间时转换失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30837771/

相关文章:

sql - 关于自引用表的删除级联

sql-server - 数据集的 SSRS 查询执行失败

sql - 根据最大日期和分组依据更新列

PHP/SQL - 使用 Select 元素显示/链接到数据库中的行

sql - 在 SQL 中如何不选择列值与其上一行中的列值相同的行

sql - 在 select 执行计算时提高 SQL 性能

sql - PostgreSQL 同比增长

mysql - 主键中的 DATE 会在范围扫描中获得性能吗?

sql - 最喜欢的性能调优技巧

mySql 子查询答案检查期末考试问题