【问题标题】:How to return a date format similar to 7-Feb-2012 using TSQL?如何使用 TSQL 返回类似于 2012 年 2 月 7 日的日期格式?
【发布时间】:2012-02-14 15:56:13
【问题描述】:

使用 TSQL,如何返回格式类似于“7-Feb-2012”的日期?

返回日期:

SELECT DATEPART(d, getdate())

这会返回年份:

SELECT DATEPART(yyyy, getdate())

如何返回月份名称?

谢谢,

【问题讨论】:

  • 为什么需要?一般来说,建议将数据和表示分开。返回其本机类型的日期(它没有格式,使用更少的字节,并且易于操作)并在您的客户端中对其进行格式化。
  • 我问了一个问题,不用担心为什么。这是关于从一个数据库到另一个数据库的导入。
  • “为什么”通常很重要。通常会问一些问题,遵循答案会导致您进入未来的问题。数据和表示的分离(如果可能,通常是这样)提供了很大的灵活性。将日期作为字符串传递会导致意外行为(本地化、设置等)并使调试变得更加困难。我只是想提供更多帮助,而不是帮助您解决我过去不得不处理的潜在错误;) ]
  • 威廉,别太吝啬了。为什么通常对于解决真正的问题很重要,而不仅仅是被问到的问题。 @Dems 是对的,在应用程序级别进行这种操作通常更有效。
  • 这通常是正确的,这通常有助于解决问题和提出新方法,但在这里并不重要。如果这很重要,我会详细说明。也许我应该明确写下,请不要问为什么,因为这无助于回答这个问题! ;)

标签: sql tsql date datepart


【解决方案1】:

以下将为您提供类似“2012 年 2 月 14 日”的格式:

SELECT REPLACE(CONVERT(VARCHAR(11), GETDATE(), 106), ' ', '-') AS [dd-Mon-YYYY]

如果你只想要月份名称,你可以这样做:

select DATENAME(m, getdate())

【讨论】:

    【解决方案2】:
    SELECT CONVERT(VARCHAR,GETDATE(),106)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 2020-01-08
      • 2012-06-18
      • 1970-01-01
      相关资源
      最近更新 更多