我正在使用SQL Server 2012 sp1。我有一个包含以下日期时间值的表列。
BLDCHKDT
-----------------------
2013-06-19 00:00:00.000
2013-07-22 00:00:00.000
2013-08-21 00:00:00.000
2013-09-20 00:00:00.000
2013-11-18 00:00:00.000
我想以下列格式检索日期和时间:
Date: 19062013
Time: 00000000
有可能吗?我已经查看了有关FORMAT,CAST和CONVERT函数的SQL Server帮助文档,我似乎无法取得任何进展。 到目前为止,我尝试了以下转换:
N.B请注意我将日期时间转换为字符串以便于平面文件导出。
- 检索日期
SELECT [DATE-BLDCHKD] = CONVERT (VARCHAR (20), BLDCHKDT, 112)
FROM TABLEA
DATE-BLDCHKD
--------------------
20130619
20130722
20130821
20130920
20131118
--Retrieving Time
SELECT [TIME-BLDCHKD] = CONVERT (VARCHAR (20), BLDCHKDT, 24)
FROM TABLEA
TIME-BLDCHKD
--------------------
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
感谢您的见解。提前谢谢。
答案 0 :(得分:7)
由于您使用的是SQL Server 2012,因此您可以使用FORMAT()
功能:
SELECT FORMAT(BLDCHKDT,'ddMMyyyy')
, FORMAT(BLDCHKDT,'hhmmssfff')
答案 1 :(得分:1)
你可以这样做:
declare @value datetime = getdate()
select
replace(convert(varchar(20), @value, 104), '.', '') date_part,
left(replace(convert(varchar(20), @value, 114), ':', ''), 8) time_part
返回23032014,17174466,2014-03-23 17:17:44.660
答案 2 :(得分:1)
日期部分使用第104种格式:
select replace (convert (varchar(10), @value, 104), '.', '') as date_part