【问题标题】:Unwanted Datetime Format CHange in SQLSQL 中不需要的日期时间格式更改
【发布时间】:2017-10-16 04:01:25
【问题描述】:

我正在尝试从 n SQL 服务器获取事件的日期时间,并使用该日期在另一个表中查找数据。

当我从第一个表中选择日期时间变量时,它显示为...

2017-01-01 20:41:23.000

数据被解析成通过

声明的临时表
CREATE TABLE #RunData1 
(
  [MyDateTime] Datetime, 
  [Tag] nvarchar(50), 
  [Hours] float, 
  [id] INT IDENTITY(1,1),
  [searched] bit
)

我将此值存储在日期时间变量@startPoint (DECLARE @startPoint dateTime) 中并使用SELECT @startPoint = MyDateTime FROM #RunData1 WHERE id = @currentid_inner 设置它

但是当我尝试打印 @startpoint 时,它显示为 Jan 1 2017 8:41PM?

起初我认为这可能只是打印命令中的一些格式。但是当我尝试从中减去 10 秒 (SET @startpoint = DateAdd(SS,-10,@startPoint)) 并在这个新时间之后用它来查找数据时。我从2017-01-01 20:41:00.000 而不是2017-01-01 20:41:13.000 之后获取数据(数据采样时间为 0.5 秒)

为什么日期格式从 2017-01-01 20:41:23.000 更改为 Jan 1 2017 8:41PM 导致我失去秒数?

【问题讨论】:

  • 好吧,我觉得很傻。我正在使用 CAST 将日期转换为字符串以在循环中进行动态查询。这是将日期时间转换为上述格式。我通过将 CAST 更改为转换并指定正确的样式来修复它。
  • 如果你不发布所有脚本就会得到这样的结果

标签: sql sql-server tsql datetime


【解决方案1】:

您不会损失秒数 - 这正是日期显示的方式。

在显示 datetime 值时 - 让 应用程序 处理 - 而不是数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    相关资源
    最近更新 更多