SQL Server 2012中的日期和时间格式转换

时间:2014-03-23 05:58:27

标签: sql sql-server date datetime sql-server-2012

我正在使用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

感谢您的见解。提前谢谢。

3 个答案:

答案 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