0

同僚から提供された複雑な SQL クエリがあります。MMYYYYフォーマットで1列を取得したい。どうすれば達成できますか?以下は、クエリの列部分です(クエリが長すぎるため、列部分のみを貼り付けています)。

CASE
   WHEN len(datepart (WEEK, cast(cast(month(from_date) AS VARCHAR(2)) + '/' + cast(xx.day_val AS VARCHAR(2)) + '/' + cast(year(from_date) AS VARCHAR(4)) AS DATETIME))) = 1 
   THEN '0' + datepart (WEEK, cast(cast(month(from_date) AS VARCHAR(2)) + '/' + cast(xx.day_val AS VARCHAR(2)) + '/' + cast(year(from_date) AS VARCHAR(4)) AS DATETIME))
   ELSE datepart (WEEK, cast(cast(month(from_date) AS VARCHAR(2)) + '/' + cast(xx.day_val AS VARCHAR(2)) + '/' + cast(year(from_date) AS VARCHAR(4)) AS DATETIME))
END AS week_number
4

1 に答える 1

0

日付を日時/日付ではなく文字列 (char/varchar) として保存する場合にのみ、日付を特定の形式で保持できます。

日付/日時を特定の形式で表示するには、CONVERT または CAST を使用する必要があります。

SELECT CONVERT(varchar,CONVERT(datetime, '2010-03'), 103) -- 2010 年 3 月

参照: http://karaszi.com/the-ultimate-guide-to-the-datetime-datatypes (これがあなたの質問に答えてくれることを願っています)

よろしく、

ニコラス

于 2012-08-16T14:33:29.340 に答える