如何在SQL Server中将日期时间格式化为M/D/YYYY?

如何在SQL Server中将日期时间格式化为M/D/YYYY?,sql,sql-server,tsql,Sql,Sql Server,Tsql,要将日期时间转换为MM/DD/yyyyy,此操作有效: declare @datetime datetime = '2015-01-01' select convert(varchar(10),convert(date,@datetime),101) 计算结果为01/01/2015。如何将日期转换为1/1/2015 上的任何内容都与M/D/YYYY格式不匹配。我认为您唯一的可能性是执行以下操作: DECLARE @datetime DATETIME = '2015-01-01' SELECT

要将
日期时间
转换为
MM/DD/yyyyy
,此操作有效:

declare @datetime datetime = '2015-01-01'
select convert(varchar(10),convert(date,@datetime),101)
计算结果为
01/01/2015
。如何将日期转换为
1/1/2015


上的任何内容都与
M/D/YYYY
格式不匹配。

我认为您唯一的可能性是执行以下操作:

DECLARE @datetime DATETIME = '2015-01-01'

SELECT LTRIM(STR(MONTH(@datetime))) + '/' +
       LTRIM(STR(DAY(@datetime))) + '/' +
       STR(YEAR(@datetime), 4)
使用SQL Server 2012及更高版本,您可以执行以下操作:

SELECT FORMAT(@datetime, 'M/d/yyyy')

没有使用单位数字日或月的转换样式。不过,这可能行得通

declare @datetime datetime = '2015-01-01'
select
    cast(month(@datetime) as varchar(2)) + '/' +
    cast(day(@datetime) as varchar(2)) + '/' +
    cast(year(@datetime) as varchar(4))
这就是它的工作原理:

  • 首先将DATETIME转换为CHAR
  • 然后在开头添加一个“/”字符
  • 用“/”替换所有“/0”
  • 用东西,去掉第一个“/”

  • 您使用的是什么版本的SQL Server?SQL Server 2012和更新版本有一个
    格式
    函数-在此之前,您必须自己进行字符串操作…每次我在StackOverflow上看到这个问题时,我都会说同样的话:您真的需要在SQL中进行此操作吗?为什么不在你的用户界面上这样做呢?几乎没有必要在数据库中这样做。我做了@chopper,谢谢你的提醒。
    DECLARE @datetime DATETIME = '2015-01-01';
    SELECT STUFF(REPLACE('/' + CONVERT(CHAR(10), @datetime, 101),'/0','/'),1,1,'')