首页 > 解决方案 > 从字符串转换日期时转换失败

问题描述

我正在尝试在 SELECT 语句中将 YYYMMDD 的发票日期字段重新排列为短日期格式 DD/MM/YYYY 或 DD-MM-YYYY UK/British 格式。

在 MSSQL 服务器 2008 R2 上执行

SQL

CONVERT(date,CAST(columnvalue AS VARCHAR),103)

生产 YYYY-MM-DD

CAST(right(convert(varchar,columnvalue),2)+substring(convert(VARCHAR,columnvalue ),5,2) + left(convert(VARCHAR,columnvalue ),4)AS VARCHAR)

生产 DDMMYYY

CONVERT(date,CAST(right(convert(varchar,columnvalue),2)+substring(convert(VARCHAR,columnvalue),5,2) + left(convert(VARCHAR,columnvalue),4)AS VARCHAR),103) 

错误

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

我究竟做错了什么?

标签: tsqlsql-server-2008-r2

解决方案


以下内容会有所帮助:

SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS [DD/MM/YYYY]

SELECT CONVERT(VARCHAR(10), GETDATE(), 105) AS [DD-MM-YYYY]

推荐阅读