2016-08-01 39 views
1

私は2016-08-01 03:00:00.000形式でTimeStampUTCと呼ばれる日付フィールドを持っているが、私は変更日付形式

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

でそれを返す必要があります

どのように返すクエリを書くには01/08/2016方法。

+0

どのように変換 'についての(varchar(15)、TimeStampUTC、101) ' – Sankar

+0

@SankarRaj日、月、年を別々に変換せずに使用することをお勧めしますか? –

+0

日付フィールドの場合、コンポーネントを解析する必要はなく、多くの形式のうちの1つを使用して文字列に変換できます。 –

答えて

1

CONVERT() functを使用すると、異なる日時形式を取得できますイオン、

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-%M-%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の両方は、月ではなく、1日前になります。 –

+0

はい、それも動作します!ハートありがとう、私も何か新しいことを学んだ:) – Ket