【发布时间】:2021-06-26 07:49:38
【问题描述】:
我正在使用 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”的形式出现,我相信它才能正常工作
基本上只是切换我认为的月份和日期?
有什么想法吗?
【问题讨论】:
-
传入流中日期的确切格式是什么?
-
大家好,数据以 03/28/2021 流入。所以这就是为什么我将其显示为 varchar 作为默认值,我需要将其更改为 28/03/2021
-
@d_chawke
Stream包含什么?如果解析失败,那是因为日期 string 与样式不匹配。日期本身没有格式,它们是二进制值。如果CONVERT成功,结果将没有格式。由客户端以一种或另一种方式显示datetime值 -
首先不要使用
varchars 作为日期和时间值。有 6 种日期和时间数据类型可供选择,它们要好得多。日期和时间数据类型也没有格式,由演示文稿选择它们出现的格式,不是 RDBMS。
标签: sql-server datetime substring converters