如何解决SQL Server日期时间为12 AM/PM格式,不带毫秒
| 我想将日期时间数据返回以下格式: mm / dd / yy hh:mi:ssAM 根据CONVERT文档,与我的规格最接近的是\'131 \'SELECT CONVERT(varchar,GETDATE(),131)
但它与我的规格不完全匹配。
编辑:
我最终在应用程序层PHP中进行了日期格式化。
它就像使用strtotime函数生成UNIX时间戳并将其传递给ѭ1函数一样简单。
$date = date(\'m/d/Y g:ia\',strtotime($row[\'date_time\']));
解决方法
尝试这个:
SELECT CONVERT(varchar,GETDATE(),101) +
REPLACE(CONVERT(varchar,0),REPLACE(CONVERT(varchar,107),\',\'\'),\'\')
这基本上使用的是DATE所需的方法,然后仅将其添加到所需时间的时间部分。
,尽管我认为格式化确实应该是UI的一部分,但我想如果您确实需要它,则可以使用以下方法-我敢肯定有一种更简单的方法可以做到这一点-而是将其设置为UDF,然后将其用于任何形式查询您想要的。
declare @date varchar(50)
set @date = (select CONVERT(varchar,131))
set @date = (select LEFT(@date,len(@date) - 6) + \' \' + RIGHT(@date,2))
set @date = right(@date,LEN(@date) - 11)
select CONVERT(varchar,101) + @date
,您可以从DATEPART()\对其进行汇编,并从中创建用户定义的函数以方便重用。
这是未经测试的。.试一试:
CREATE FUNCTION fnSpecDate()
RETURNS VARCHAR(24)
AS
BEGIN
DECLARE @outData VARCHAR(24)
set @outData =
CONVERT(varchar,DATEPART(mm,GETDATE())) + \"/\"
+ CONVERT(varchar,DATEPART(dd,DATEPART(yy,GETDATE())) + \" \"
+ CASE WHEN DATEPART(hh,GETDATE()) > 12
THEN CONVERT(varchar,DATEPART(hh,GETDATE()) - 12)
WHEN DATEPART(hh,GETDATE()) = 0
THEN \'12\'
ELSE CONVERT(varchar,GETDATE()))
END + \":\"
+ CONVERT(varchar,GETDATE())) + \":\"
+ CONVERT(varchar,DATEPART(ss,GETDATE()))
+ CASE WHEN DATEPART(hh,GETDATE()) > 11
THEN \"PM\"
ELSE \"AM\"
END
RETURN @outData
END
然后,在任何常规查询中,您只需输入dbo.fnSpecDate() as myDate
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。