【问题标题】:SQL Server: replace year of datetime with current year in SelectSQL Server:将日期时间的年份替换为 Select 中的当前年份
【发布时间】:2014-06-12 23:20:17
【问题描述】:

我正在使用以下存储过程选择数据,并将 dateDT 保存为日期时间。

这里有人可以告诉我如何替换下面转换结果中的年份,以便它始终是当前年份(与表格中保存的年份无关)?

SELECT      dateID,
            CONVERT(VARCHAR(11), dateDT, 106) AS dateDT,
            CONVERT(VARCHAR(10), dateDT, 126) AS dateDTShort,
            countries,
            regions
FROM        DaysFixed
WHERE       countries LIKE '%'+@selCountry+'%'
OR          regions LIKE '%'+@selCountry+'%'
ORDER BY    dateID
FOR XML PATH('datesDT'), ELEMENTS, TYPE, ROOT('root')

非常感谢,迈克。

【问题讨论】:

    标签: sql sql-server date datetime stored-procedures


    【解决方案1】:

    您可以在转换后更改年份。以下是日期格式的示例:

            CONVERT(VARCHAR(7), dateDT, 106) + CAST(year(getdate() as varchar(4)) AS dateDT,
            STUFF(CONVERT(VARCHAR(10), dateDT, 126), 1, 4, CAST(year(getdate() as varchar(4)))
                 ) AS dateDTShort,
    

    【讨论】:

    【解决方案2】:
    DECLARE @dt DATETIME = '2012-04-27 14:00:39.343'
    
    SELECT CAST(
            STUFF(
                  CONVERT(VARCHAR(23), @dt,121)
                  ,1, 4, CAST(YEAR(GETDATE()) AS VARCHAR(4))
                 )
               AS DATETIME)
    
     Result:  2014-04-27 14:00:39.343
    

    【讨论】:

    • 也谢谢你!
    猜你喜欢
    • 2013-03-01
    • 2023-03-20
    • 1970-01-01
    • 2018-04-05
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    相关资源
    最近更新 更多