问题描述
我的SQL Server系统是2016。
作为主题,我想将YYYYMMDD-HHMMSS转换为mm / dd / yyyy hh: mm:ss,并使用动态SQL来实现。
As topic, I want to convert YYYYMMDD-HHMMSS to mm/dd/yyyy hh:mm:ss, and use dynamic SQL to fulfill this.
我的数据如下:
ID
20161119-075950
20161117-110952
20161118-153406
数据类型为nvarchar。
The datatype is nvarchar.
虽然我使用以下语法:
SELECT convert(date,convert(varchar(max),id,130), 130) from abc
$ b中选择convert(date,convert(varchar(max),id,130),130)
$ b
错误从字符串转换日期和/或时间时转换失败。显示。我在考虑是否是因为SQL Server无法将此 YYYYMMDD-HHMMSS 标识为日期类型,所以我需要先将其转换为 YYYYMMDD hh:mm:ss ,然后将其转换为 mm / dd / yyyy hh:mm:ss ?随意点灯。
An error Conversion failed when converting date and/or time from character string. shows up. I am thinking whether it is because SQL Server cannot identify this YYYYMMDD-HHMMSS as date type, and I need to convert this to YYYYMMDD hh:mm:ss first and then mm/dd/yyyy hh:mm:ss? Feel free to shed some lights. Thanks!
推荐答案
Select CONVERT(VARCHAR(25) , CAST(LEFT(ID , 8) AS DATETIME), 101)
+ ' ' + LEFT(RIGHT(ID , 6) ,2) + ':'
+ SUBSTRING(RIGHT(ID , 6) , 3,2) + ':'
+ RIGHT(ID , 2)
FROM TableName
这篇关于SQL Server:将YYYYMMDD-HHMMSS传输到mm / dd / yyyy hh:mm:ss的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!