2016-08-01 120 views
1

我在2016-08-01 03:00:00.000格式称为TimeStampUTC日期字段,但我需要回到它01/08/2016更改日期格式

我使用下面的查询

SELECT Convert(varchar(2),DATEPART(DAY, a.TimeStampUTC)) + '/'+ Convert(varchar(2),DATEPART(MONTH, a.TimeStampUTC)) + '/' + Convert(varchar(4),DATEPART(year, a.TimeStampUTC)) AS Date FROM table AS a WHERE a.TimeStampUTC > '$startDate' AND a.TimeStampUTC <='$endDate' 

问题是它返回的1/8/2016

如何编写查询将其作为01/08/2016的方式返回。

+0

怎么样'转换(varchar(15),TimeStampUTC,101)' – Sankar

+0

@SankarRaj你是否建议使用它,而不用分别转换日,月和年? –

+0

如果它是日期字段,不需要解析出组件,则可以使用多种格式之一转换为字符串。 –

回答

1

您可以通过使用CONVERT()函数获得不同的日期时间格式离子,

SELECT 
Convert(varchar(15),TimeStampUTC,103) AS Date 
FROM table AS a 
WHERE a.TimeStampUTC > '$startDate' AND a.TimeStampUTC <='$endDate' 

在这里你可以找到不同的日期格式代码:http://www.w3schools.com/sql/func_convert.asp

0

可以使用DATE_FORMAT()

DATE_FORMAT(yourdate, '%D-%间%Y')

,供大家参考:sql date formats

+0

SQL Server没有'DATE_FORMAT()'函数,SQL Server 2012和更新版本都有'FORMAT()',但是输入日期格式的方式与您在此处的不同。 –

0
declare @TimeStampUTC datetime='2016-08-01 03:00:00.000' 
     select CONVERT(VARCHAR(10),convert(date,@TimeStampUTC),103) 
0

假设你正在寻找DD/MM/YYYY,你可以试试这个:

select REPLACE(CONVERT(varchar(15), a.TimeStampUTC, 105),'-','/') 
+1

不需要用斜线替代破折号,只需使用格式代码'103'即可。 103和105都有第一天,而不是一个月。 –

+0

是的,这也行得通!谢谢哈特,我也学到了一些新东西:) – Ket