【问题标题】:how to get this results for this?如何得到这个结果?
【发布时间】:2020-11-15 08:30:43
【问题描述】:

编写从 db1.MyGuitarShop.Products 表中返回这些列的 SELECT 语句:

a) 添加日期列

b) 使用 CAST 函数返回 DateAdded 列及其日期(年、月和日)的列

c) 使用 CAST 函数返回 DateAdded 列及其完整时间(小时、分钟、秒和毫秒)的列

d) 使用 CAST 函数返回仅包含月份和日期的 DateAdded 列的列

这是我目前拥有的:

SELECT
    DateAdded,
    CAST(DateAdded AS decimal(10, 1)) AS AddedDate,
    CAST(DateAdded AS decimal(10)) AS AddedTime,
    CAST(DateAdded AS int) AS AddedChar7
FROM MyGuitarShop.Products;

【问题讨论】:

  • 将来,您可能希望确保帖子的标题更具描述性。这将使人们在查看帖子之前更容易理解您要做什么。例如...“如何将日期列格式化为不同的格式”

标签: sql sql-server ssms sql-server-2019


【解决方案1】:

使用CAST 转换为DATETIME 很容易。但第三项比较棘手,涉及两个独立的CASTS,然后是字符串连接。

这样的事情应该可以解决问题:

请注意,我使用了一个变量 (@dt) 只是为了更简单地演示这个概念。

DECLARE @dt DATETIME = GETDATE()
SELECT      @dt
        ,   CAST(@dt AS Date) AS AddedDate
        ,   CAST(@dt AS Time) AS AddedTime
        ,   CAST(MONTH(@dt) AS VARCHAR(4)) + CAST(DAY(@dt) AS VARCHAR(4)) AS AddedChar

这是fiddle

【讨论】:

    【解决方案2】:

    另一种选择是使用CONVERT 将日期转换为文本。它的优点是允许您为结果选择特定格式...

    https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15

    SELECT
        DateAdded,
        CONVERT(varchar(128), DateAdded, 111) AS AddedDate,
        CONVERT(varchar(128), DateAdded, 14) AS AddedTime,
        CAST(DATEPART(MONTH, DateAdded) as varchar(2)) + '/' + CAST(DATEPART(DAY, DateAdded) as varchar(2)) AddedChar7
    FROM (VALUES
            (GETDATE())
        )Products(DateAdded)
    

    【讨论】:

      【解决方案3】:
      SELECT  DateAdded
              ,Cast(DateAdded as date) Cast_YMD --Default for date is YMD
              ,Cast(DateAdded as time) Cast_HMSM -- Default for time is HMSM
              ,CAST(DateAdded as char(6)) Cast_MMDD --The 6 characters in the date field are month(as 3 char name Jan,Feb...) and day(as 2 digit)   
      FROM Products
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-10
        • 2013-03-21
        • 2013-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-14
        相关资源
        最近更新 更多