0

我的同事给了我一个复杂的 sql 查询。我想得到一列的MMYYYY格式。我怎样才能实现它?以下是查询中的列部分(查询太长。所以我只粘贴列部分)。

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) -- 03/2010

参考: http: //karaszi.com/the-ultimate-guide-to-the-datetime-datatypes(我希望这能回答你的问题)

问候,

尼古拉斯

于 2012-08-16T14:33:29.340 回答