代码之家  ›  专栏  ›  技术社区  ›  Azhar

如何以'HH:mm tt'格式从SQLServer2005日期时间获取时间部分

  •  18
  • Azhar  · 技术社区  · 14 年前

    如何在中从SQLServer2005DateTime获取时间部分 HH:mm tt 格式

    例如。

    11:25 AM
    14:36 PM
    
    9 回复  |  直到 9 年前
        1
  •  26
  •   AdaTheDev    14 年前

    一种方法是:

    SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7))
    

    Books Online here ,format 100是一个以您想要的格式包含时间元素的格式,它只是一个从前面去掉日期的例子。

        2
  •  9
  •   Andomar    14 年前

    您将需要两个转换,一个获得HH:mm时间,一个获得AM/PM时间。例如:

    declare @date datetime
    set @date = '20:01'
    SELECT CONVERT(VARCHAR(5), @date, 108) + ' ' +
           SUBSTRING(CONVERT(VARCHAR(19), @date, 100),18,2)
    

    这张照片:

    20:01 PM
    

    在select查询中,将@date替换为列名。

        3
  •  7
  •   Tisho DadoCe    12 年前

    SQL Server 2008

    SELECT
    CONVERT(TIME,GETDATE()) AS HourMinuteSecond,
    CONVERT(DATE,GETDATE(),101) AS DateOnly
    GO
    

    HourMinuteSecond: 13:06:56.5770000
    DateOnly:         2012-07-26
    

    SELECT
    CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond,
    CONVERT(VARCHAR(8),GETDATE(),101) AS DateOnly
    GO
    

    http://blog.sqlauthority.com/2009/08/06/sql-server-get-time-in-hourminute-format-from-a-datetime-get-date-part-only-from-datetime/

        4
  •  2
  •   bytecode77    12 年前

    SQL Server 2008

    SELECT
    CONVERT(TIME,GETDATE()) AS HourMinuteSecond,
    CONVERT(DATE,GETDATE(),101) AS DateOnly
    GO
    

    HourMinuteSecond: 13:06:56.5770000
    DateOnly:         2012-07-26
    

    SQL Server 2000/2005

    SELECT
    CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond,
    CONVERT(VARCHAR(8),GETDATE(),101) AS DateOnly
    GO
    
        5
  •  2
  •   Declan_K    11 年前
    select substring(CONVERT(VARCHAR, getdate(), 114),1,5)
    

    结果:22:05

        6
  •  1
  •   Anax    14 年前

    你需要使用 CONVERT

    CONVERT(VARCHAR, yourdatetimefiled, 114) AS [HH:MI(12H)]
    
        7
  •  1
  •   Matt Cain Amit    11 年前
    select cast(getdate() as time)) [time],
    
        8
  •  1
  •   Imran Ali Khan    9 年前

    这提供了一个实际的datetime,而不是varchar

    CAST(LEFT(YOURDATETIME,12) AS SMALLDATETIME) AS YOURNEWDATE
    
        9
  •  0
  •   Salil    14 年前
    select right(convert(char(20),getdate(),0),7)
    

    但没有支票

        10
  •  0
  •   YesOrYes    5 年前

    对于SQL Server 2012及更高版本,请使用以下命令:

    SELECT Format(GetDate(), 'hh:mm tt')