【问题标题】:Date format get changed while reading data from SQL从 SQL 读取数据时更改日期格式
【发布时间】:2014-10-11 05:16:32
【问题描述】:

我正在使用 Node.js 中的边缘模块从 SQL SERVER R2 读取数据。在 SQL Server Management Studio 中,日期的格式为 2014-10-05 22:24:00,但当我在 JavaScript 对象中获取它时,它的格式为 05/10/2014 22:24:00 PM。为什么会发生这种情况?如何读取相同格式的日期?

【问题讨论】:

    标签: node.js sql-server-2008


    【解决方案1】:

    在数据意义上,这两个值是相同的;它们仅在格式上有所不同;如果未指定所选格式,不同的程序将使用不同的默认值。在任一日期需要采用特定格式时,该日期将需要应用格式化命令作为显示更改,而基础值保持不变。如果你只是想让它们看起来一样,只需要改变一个,使一个的格式与另一个的格式匹配。您可以使用此脚本 (see this link) 将 SQL Server 日期的格式更改为“DD/MM/YYYY HH:mm:ss”:

    DECLARE @Date DATETIME = '2014-10-05 22:24:00'
    SELECT CONVERT(VARCHAR(25), @Date, 103) + ' ' + CONVERT(VARCHAR(25), @Date, 108) AS FormattedDate
    

    它的末尾没有 AM/PM - 我不确定为什么它会出现在 JavaScript 日期中,因为时间是以 24 小时格式给出的。如果需要,您可以使用以下方法添加它:

    DECLARE @Date DATETIME = '2014-10-05 22:24:00'
    SELECT CONVERT(VARCHAR(26), @Date, 103) + ' ' + CONVERT(VARCHAR(26), @Date, 108) + ' ' + RIGHT(CONVERT(VARCHAR(26),@DATE,109),2) AS FormattedDate
    

    我承认这一切现在开始看起来很笨拙 - 将两个日期格式化为易于显示的东西可能更容易。 this question 的答案有帮助。最简单的解决方案是避免在可能的最后一分钟之前进行日期格式化,此时只需要播放您的结果数据。

    希望有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 2017-02-17
      • 1970-01-01
      • 2022-01-17
      相关资源
      最近更新 更多