【问题标题】:MSSQL format date and time during INSERT插入期间的 MSSQL 格式日期和时间
【发布时间】:2015-04-16 07:17:18
【问题描述】:

将日期和时间插入到我的 MSSQL 查询中时如何格式化?

我知道以前有人问过这个问题,但我不知道为什么在将当前日期和时间插入数据库时​​,我很难理解如何格式化它。

最初以下 INSERT 查询有效,但现在 我想添加当前日期和时间,并以分钟作为最后一个字符。没有秒或毫秒

INSERT INTO Form_Submission (ID,Submission_Date,Status)
VALUES  ('23', CURRENT_TIMESTAMP, 'Open');

我要找的格式是:2015-04-08 13:42

【问题讨论】:

  • 您希望日期采用什么格式?另外,您是否要输入当前日期?
  • 添加了我想要实现的格式示例,

标签: mysql sql-server datetime sql-insert


【解决方案1】:

您可以像这样将LEFT 和CONVERT 与样式120 一起使用

INSERT INTO     Form_Submission (ID,Submission_Date,Status)
 VALUES          ('23', CONVERT(DATETIME,LEFT(CONVERT(VARCHAR(40),CURRENT_TIMESTAMP,120),16)), 'Open')

有关Convert 使用的不同样式的更多详细信息,请参阅here

【讨论】:

  • 感谢您的帮助和示例,我将尝试此操作。
【解决方案2】:

如果您尝试插入 DATETIME 或 SMALLDATETIME 字段,那么这将起作用:

CONVERT(SMALLDATETIME, GETDATE())

或者CONVERT(SMALLDATETIME, CURRENT_TIMESTAMP),如果你愿意的话。

所以你的代码是:

INSERT INTO     Form_Submission (ID,Submission_Date,Status)
VALUES          ('23', CONVERT(SMALLDATETIME, GETDATE()), 'Open')

关键是您不应该在插入数据库时​​格式化日期和时间,您应该只在输出时(显示时)格式化它们。 SMALLDATETIME 提供您想要的粒度级别(精确到最近的分钟)。

在此处查看 MSDN 文档:GETDATE 和 SMALLDATETIME

【讨论】:

    【解决方案3】:

    也许你可以使用FORMAT() T-SQL 函数:

    INSERT INTO     Form_Submission (ID,Submission_Date,Status)
    VALUES          ('23', FORMAT(CURRENT_TIMESTAMP, 'yyyy-MM-dd hh:mm'), 'Open')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 2018-02-26
      • 1970-01-01
      • 2016-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多