首页 > 解决方案 > SQL Server 中的日期时间转换错误

问题描述

我的表包含“StartDate”列,该列中存储的值采用“23.1.2018”格式。

我正在编写一个选择查询,我在其中传递 FromDate 和 ToDate。

@FromDate = '2018-08-01'
@ToDate = '2018-08-05'

执行后,我得到一个错误

从字符串转换日期和/或时间时转换失败

除此之外,我还使用了 CAST 和 CONVERT 之类的几种技术CONVERT(date, StartDate, 104)……

但同样的错误仍然存​​在。

期待解决方案。

select * 
from [dbo].[LMT2_ServerLicenseUser] 
where cast(cast(startdate as datetime(7)) as date) = cast(cast(@FromDate as datetime(7)) as date)

SELECT CONVERT(date, '2018-08-01')

select convert(varchar, '24.11.2017', 23)   

select CONVERT(VARCHAR, CONCAT(CONVERT(date, StartDate, 104), RIGHT('0' + CONVERT(VARCHAR, StartTime), 8)), 103)

标签: sql-serversql-server-2008sql-server-2005

解决方案


登录的语言设置控制如何解释这些模棱两可的日期格式(尽管这可以用显式的 SET DATEFORMAT 语句覆盖)。

可以通过 ALTER LOGIN 更改 DEFAULT_LANGUAGE

尝试使用 103

选择转换(日期,'25/08/2008',103)


推荐阅读