我需要让我的日期符合以下格式:
12/3/2011
例如与12/03/2011
我目前在结果集上使用的SQL是:
CONVERT(VARCHAR(10), Created, 105) as Created
我怎么能这样做,谢谢!
答案 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','\')创建