SQL日期格式转换问题

时间:2012-04-02 15:20:31

标签: sql sql-server date

我需要让我的日期符合以下格式:

12/3/2011例如与12/03/2011

相对

我目前在结果集上使用的SQL是:

CONVERT(VARCHAR(10), Created, 105) as Created

我怎么能这样做,谢谢!

5 个答案:

答案 0 :(得分:4)

SQL Server中没有标准日期格式可以返回数天或数月的单个数字。您可以使用MONTH,DAY和YEAR函数自行滚动

-- M/D/Y format (USA)
SELECT CAST(MONTH(@date) AS varchar(2)) + '/'
       + CAST(DAY(@date) AS varchar(2)) + '/'
       + CAST(YEAR(@date) AS varchar(4))

-- D/M/Y format (everywhere else)
SELECT CAST(DAY(@date) AS varchar(2)) + '/'
       + CAST(MONTH(@date) AS varchar(2)) + '/'
       + CAST(YEAR(@date) AS varchar(4))

答案 1 :(得分:1)

CONVERT(CHAR(10),CONVERT(DATETIME,Created),103)

答案 2 :(得分:1)

如果这是针对列的,那么所有这些方法都会影响性能。由于C#和许多其他客户端语言具有更灵活的函数来格式化日期等内容,因此您应该在客户端层应用此格式。据推测,你可能会循环遍历所有行并在显示时单独处理值。

答案 3 :(得分:0)

使用'/'添加REPLACE'/ 0'然后检查LEFT或第一个字符是否为0

答案 4 :(得分:0)

有一个更好的建议。我会添加一个格式函数,因为你要求的东西有点不常见,

http://www.sqlusa.com/bestpractices2005/centurydateformat/

查看fnFormatDate。然后你可以按照你想要的任何方式格式化它,但它可能/可能不是内联你想要用语句做什么

REPLACE(CONVERT(VARCHAR(10),Created,105),'\ 0','\')创建