sql-server - SQL Server 将字符串转换为日期时间
问题描述
我正在使用 SQL 服务器,我需要将一段字符串转换为日期时间,但出现错误
将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。
到目前为止,这是我的代码导致问题
SELECT TOP (1) [stream]
, convert(datetime, SUBSTRING(Stream, 12, 10), 103) as Date
FROM x
where .....
select *
from
当我将日期时间更改为 varchar 时,日期显示为“03/28/2021”
但是我需要它以“28/03/2021”的形式出现,我相信它才能正常工作
基本上只是切换我相信的月份和日期?
有任何想法吗?
解决方案
这里没有足够的信息来给你一个准确的答案——我们不知道你正在输入什么输入数据。
转换为 DateTime 的文档:
具有各种日期时间格式 dd/mm/yyy 、 mm/dd/yyyy 等的语言环境代码(您传递 103 的地方)
找到适用于您正在尝试做的事情的那个。
您关于“超出范围值”的错误意味着您使用了错误的语言环境格式 - 超过 12 的 DAY 值(例如,28 日)被解释为 MONTH 值。由于日历中没有第 28 个月,因此会引发错误。
您传入的语言环境代码为 103 = 这是英式英语:dd/mm/yyyy 尝试将其替换为 101 (en-US) for mm/dd/yyyy
推荐阅读
- php - 访问插件模板内的帖子 ID
- django - 使用 nginx 为 django 网站提供服务时,如何修复“未在此服务器上找到请求的资源。”?
- sass - 如何正确地循环 SASS 数组
- python - 离线使用 plotly 时,plotly express 绘图自动打开新选项卡
- git - 如何在使用 lfs 的 repo 上创建 git 备份?
- objective-c - UIAlertController – 获取消息和操作视图的方法?
- java - 在反向传播中使用 Sigmoid 的导数会导致误差为零?- 神经网络
- swift - 为什么 CIFalseColor 重新着色超过要求?
- python - 使用 setuptools 对 yaml 配置文件的可执行访问
- amazon-web-services - 无法将 EC2 AMI 导出到另一个账户,因为 AWS Marketplace 操作系统已过时