将 SQL DATETIME 结果格式化为 --> 2011 年 8 月 25 日下午 4:35 <-- 不是 --> 2011-08-25 16:35:51.000 <--

发布于 2024-12-01 06:18:14 字数 292 浏览 0 评论 0 原文

我有一个在 SQL Server 2008 R2 上运行的 SQL 查询,它返回 DATETIME 列。当前的格式返回此:

2011-08-25 16:35:51.000

我更愿意看到的是:

8/25/2011 4:35 PM

如何修改我的 SELECT 语句的想法?这是一个简单的声明...

SELECT DtCheckIn from Ticket

谢谢你,安德鲁

I have a SQL Query running on SQL Server 2008 R2 that returns a DATETIME column. The current formatting returns this:

2011-08-25 16:35:51.000

and what I would rather see is this:

8/25/2011 4:35 PM

Ideas of how I can modify my SELECT statement? Here a simple statement to work with...

SELECT DtCheckIn from Ticket

Thank you, Andrew

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

送你一个梦 2024-12-08 06:18:14

您可以执行以下操作:

SELECT convert(varchar, getdate(), 101) + RIGHT(convert(varchar, getdate(), 100), 7)

有关日期时间格式的资源:

http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/

http://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/

编辑 - 这有点做作,但它应该给你什么你正在寻找。

基本上,第一部分 SELECT Convert(varchar, getdate(), 101) 为您提供日期 08/25/2011。

第二部分 SELECT Convert(varchar, getdate(), 100)Aug 25 2011 5:35PM 格式提供日期和时间。您只需要采用 hh:mmAMhh:mmPM 格式的时间部分,则所需的字符总数为 7。因此,如果您将其更改为 选择正确(convert(varchar, getdate(), 100), 8),您将获得时间5:37PM。我在 RIGHT() 中使用了 8 来获得额外的空间。但现在您只想要时间而不是 AM/PM,因此添加 SELECT LEFT(RIGHT(convert(varchar, getdate(), 100), 8), 6),您将得到 hh:mm。

最后,您希望 AM/PM SELECT RIGHT(convert(varchar, getdate(), 100), 2) 这将为您提供最后 2 个字符。

把它们放在一起,你会得到:

SELECT convert(varchar, getdate(), 101) 
    + LEFT(RIGHT(convert(varchar, getdate(), 100), 8), 6)
    + ' ' + RIGHT(convert(varchar, getdate(), 100), 2)

这给出了你的最终产品:

08/25/2011  5:39 PM

You could do the following:

SELECT convert(varchar, getdate(), 101) + RIGHT(convert(varchar, getdate(), 100), 7)

Resources on date time formatting:

http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/

http://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/

EDIT - it's a little hokey but it should give you what you are looking for.

Basically the first part SELECT convert(varchar, getdate(), 101) gives you your date 08/25/2011.

The second part SELECT convert(varchar, getdate(), 100) gives you your date and time in the format Aug 25 2011 5:35PM. You only want the time portion which is in the format hh:mmAM or hh:mmPM the total number of characters you want is 7. So if you change this to SELECT RIGHT(convert(varchar, getdate(), 100), 8) you will get your time 5:37PM. I used 8 in my RIGHT() to get an extra space. But now you only want your time not AM/PM so add SELECT LEFT(RIGHT(convert(varchar, getdate(), 100), 8), 6) and you will get your hh:mm.

Finally you want your AM/PM SELECT RIGHT(convert(varchar, getdate(), 100), 2) this will get you the last 2 characters.

Put it all together and you get:

SELECT convert(varchar, getdate(), 101) 
    + LEFT(RIGHT(convert(varchar, getdate(), 100), 8), 6)
    + ' ' + RIGHT(convert(varchar, getdate(), 100), 2)

Which gives your final product:

08/25/2011  5:39 PM
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文