中文日期转换成英文日期

时间:2022-08-25 06:48:41
有表SKD 字段 SKD_YWRQ 数据库存储的是 20150114 在查询的时候 想换成英文显示格式  Jan 14, 2015如果实现?

7 个解决方案

#1


首先你要把20150114这种类型转换成真正的日期类型,比如2015-01-14,然后用下面的方式转换成你想要的结果:
Select CONVERT(varchar(100), GETDATE(), 0)--05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1)--05/16/06
Select CONVERT(varchar(100), GETDATE(), 2)--06.05.16
Select CONVERT(varchar(100), GETDATE(), 3)--16/05/06
Select CONVERT(varchar(100), GETDATE(), 4)--16.05.06
Select CONVERT(varchar(100), GETDATE(), 5)--16-05-06
Select CONVERT(varchar(100), GETDATE(), 6)--16 05 06
Select CONVERT(varchar(100), GETDATE(), 7)--05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8)--10:57:46
Select CONVERT(varchar(100), GETDATE(), 9)--05 16 200610:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10)--05-16-06
Select CONVERT(varchar(100), GETDATE(), 11)--06/05/16
Select CONVERT(varchar(100), GETDATE(), 12)--060516
Select CONVERT(varchar(100), GETDATE(), 13)--16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14)--10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20)--2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21)--2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22)--05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23)--2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24)--10:57:47
Select CONVERT(varchar(100), GETDATE(), 25)--2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100)--05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101)--05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102)--2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103)--16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104)--16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105)--16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106)--16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107)--05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108)--10:57:49
Select CONVERT(varchar(100), GETDATE(), 109)--05 16 200610:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110)--05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111)--2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112)--20060516
Select CONVERT(varchar(100), GETDATE(), 113)--16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114)--10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120)--2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121)--2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126)--2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130)--18 ???? ?????? 142710:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131)--18/04/142710:57:49:920AM

#2



-- 没有现成的函数可以这样转换,12 个月要手工加工一下

create table x(d varchar(30)) 
go
insert into x(d) values( '20150114') ,('20150409'),('20150905')
go
select d , 
 case month(d) 
 when '01' then 'Jan' 
 when '02' then 'Feb'
 when '03' then 'Mar'
 when '04' then 'Apr'
 when '05' then 'May'
 when '06' then 'June'
 when '07' then 'July'
 when '08' then 'Aug'
 when '09' then 'Sept'
 when '10' then 'Oct'
 when '11' then 'Nov'
 when '12' then 'Dec'
 end + ' '+ cast(DAY(d) as varchar(10)) + ' , ' + cast(YEAR(d) as varchar(10))
 from x 


(3 行受影响)
d                              
------------------------------ ----------------------------
20150114                       Jan 14 , 2015
20150409                       Apr 9 , 2015
20150905                       Sept 5 , 2015

(3 行受影响)


#3



set language 'english'
;WITH a1 (date) AS
(SELECT '20150114')
,a2 AS
(select convert(varchar(11),CAST(date AS datetime)) date FROM a1)
SELECT LEFT(date,6)+','+RIGHT(date,5) FROM a2

#4


显示格式化成字符串应该是前台程序的工作,数据库只负责查询数据。

#5


set language 'english';WITH a1 (date) AS(SELECT '20150114') ,a2 AS(select convert(varchar(11),CAST(date AS datetime)) date FROM a1) SELECT LEFT(date,6)+','+RIGHT(date,5) FROM a2

#6


declare @i varchar(10)
set @i='20150115'
SET LANGUAGE 'us_english'
select replace(convert(varchar(20),cast(@I AS DATETIME),106),' ','-')

#7


declare @i varchar(10)
set @i='20150115'
SET LANGUAGE 'us_english'
select convert(varchar(20),cast(@I AS DATETIME),107)

#1


首先你要把20150114这种类型转换成真正的日期类型,比如2015-01-14,然后用下面的方式转换成你想要的结果:
Select CONVERT(varchar(100), GETDATE(), 0)--05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1)--05/16/06
Select CONVERT(varchar(100), GETDATE(), 2)--06.05.16
Select CONVERT(varchar(100), GETDATE(), 3)--16/05/06
Select CONVERT(varchar(100), GETDATE(), 4)--16.05.06
Select CONVERT(varchar(100), GETDATE(), 5)--16-05-06
Select CONVERT(varchar(100), GETDATE(), 6)--16 05 06
Select CONVERT(varchar(100), GETDATE(), 7)--05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8)--10:57:46
Select CONVERT(varchar(100), GETDATE(), 9)--05 16 200610:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10)--05-16-06
Select CONVERT(varchar(100), GETDATE(), 11)--06/05/16
Select CONVERT(varchar(100), GETDATE(), 12)--060516
Select CONVERT(varchar(100), GETDATE(), 13)--16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14)--10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20)--2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21)--2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22)--05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23)--2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24)--10:57:47
Select CONVERT(varchar(100), GETDATE(), 25)--2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100)--05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101)--05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102)--2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103)--16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104)--16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105)--16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106)--16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107)--05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108)--10:57:49
Select CONVERT(varchar(100), GETDATE(), 109)--05 16 200610:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110)--05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111)--2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112)--20060516
Select CONVERT(varchar(100), GETDATE(), 113)--16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114)--10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120)--2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121)--2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126)--2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130)--18 ???? ?????? 142710:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131)--18/04/142710:57:49:920AM

#2



-- 没有现成的函数可以这样转换,12 个月要手工加工一下

create table x(d varchar(30)) 
go
insert into x(d) values( '20150114') ,('20150409'),('20150905')
go
select d , 
 case month(d) 
 when '01' then 'Jan' 
 when '02' then 'Feb'
 when '03' then 'Mar'
 when '04' then 'Apr'
 when '05' then 'May'
 when '06' then 'June'
 when '07' then 'July'
 when '08' then 'Aug'
 when '09' then 'Sept'
 when '10' then 'Oct'
 when '11' then 'Nov'
 when '12' then 'Dec'
 end + ' '+ cast(DAY(d) as varchar(10)) + ' , ' + cast(YEAR(d) as varchar(10))
 from x 


(3 行受影响)
d                              
------------------------------ ----------------------------
20150114                       Jan 14 , 2015
20150409                       Apr 9 , 2015
20150905                       Sept 5 , 2015

(3 行受影响)


#3



set language 'english'
;WITH a1 (date) AS
(SELECT '20150114')
,a2 AS
(select convert(varchar(11),CAST(date AS datetime)) date FROM a1)
SELECT LEFT(date,6)+','+RIGHT(date,5) FROM a2

#4


显示格式化成字符串应该是前台程序的工作,数据库只负责查询数据。

#5


set language 'english';WITH a1 (date) AS(SELECT '20150114') ,a2 AS(select convert(varchar(11),CAST(date AS datetime)) date FROM a1) SELECT LEFT(date,6)+','+RIGHT(date,5) FROM a2

#6


declare @i varchar(10)
set @i='20150115'
SET LANGUAGE 'us_english'
select replace(convert(varchar(20),cast(@I AS DATETIME),106),' ','-')

#7


declare @i varchar(10)
set @i='20150115'
SET LANGUAGE 'us_english'
select convert(varchar(20),cast(@I AS DATETIME),107)