我与此格式转换日期格式SQL
2011-08-25 13:53:22.607
的时间字符串以从一个数据库中的信息,并希望格式化它看起来像
8/25/2011 01:53:22 PM
请为我提出一个方法去做这个。
在SQL服务器尝试我与此格式转换日期格式SQL
2011-08-25 13:53:22.607
的时间字符串以从一个数据库中的信息,并希望格式化它看起来像
8/25/2011 01:53:22 PM
请为我提出一个方法去做这个。
在SQL服务器尝试:
DECLARE @YourDatetime datetime
SELECT @YourDateTime='2011-08-25 13:53:22.607'
SELECT
CONVERT(varchar(2),month(@YourDateTime))+'/'+CONVERT(varchar(2),day(@YourDateTime))+'/'+CONVERT(varchar(4),year(@YourDateTime)) --date remove leading zeros
+' '+RIGHT('0'+LTRIM(LEFT(RIGHT(convert(varchar(50),@YourDateTime,109),14),8)),8) --amp/pm time format keep leading zeros
+' '+RIGHT(convert(varchar(50),@YourDateTime,109),2) --am or pm
输出:
----------------------
8/25/2011 01:53:22 PM
(1 row(s) affected)
在SQL Server上的日期格式的好文章在这里:http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/
这是写在SQL Server 2005记住,但信息仍然相关。
没有原生M/d/yyyy的风格。你可以(在月和日前导零,对时辰,没有前导0)接近这一点:
DECLARE @d DATETIME = '2011-08-25 13:53:22.607';
SELECT CONVERT(CHAR(10), @d, 101) + ' '
+ LTRIM(RIGHT(CONVERT(VARCHAR(25), @d, 22), 12));
你可以做更多的工作来操作字符串,以获得准确你后是格式,但现在我建议你在做应用/表示层,而不是角力的SQL Server,格式化成这样做。
在德纳里,你将能够使用FORMAT()
有更多的控制和更少的丑陋字符串操作(又名体力劳动),例如
SELECT FORMAT(@d, 'M/d/yyyy hh:mm:ss tt');
您正在使用什么RDBMS? –
你正在使用什么数据库引擎? MySQL的? SQL Server? PostgreSQL的?甲骨文?他们对这些事情都有不同的语法。 –
IM使用SQL Server 2008,对不起,应该提到, –