sql-server - 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)
解决方案
登录的语言设置控制如何解释这些模棱两可的日期格式(尽管这可以用显式的 SET DATEFORMAT 语句覆盖)。
可以通过 ALTER LOGIN 更改 DEFAULT_LANGUAGE
尝试使用 103
选择转换(日期,'25/08/2008',103)
推荐阅读
- javascript - .style.display = "block" 不知道如何解决这个问题?
- reactjs - 没有得到 Bootstrap 原色
- c# - “素数求和”耗时太长
- javascript - 视频作为纯 css 和 html 中的 div 背景
- python - 想要使用 for 循环打印所有 0 元素的多维列表
- machine-learning - LSTM 序列预测仅在一个特定值上过拟合
- email - 在现有服务器上为现有域配置 IMAP/SMTP (Ubuntu 20.04)
- android - 在 setOnClickListeners (Kotlin) 中,{ it } 和 { view: View -> view...} 有什么区别?
- python - 如何找出另一台计算机连接到的路由器/交换机
- python - 如何使我的代码满足此要求