INSERT期间的MSSQL格式日期和时间

时间:2015-04-16 07:17:18

标签: mysql sql-server datetime sql-insert

如何在将日期和时间插入MSSQL查询时格式化日期和时间?

我知道之前已经问过这个问题,但我不知道为什么在将其插入数据库时​​如何格式化当前日期和时间时会遇到很多麻烦。

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

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

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

3 个答案:

答案 0 :(得分:2)

您可以使用LEFTCONVERT样式120,如此

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

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

答案 1 :(得分:0)

如果您要插入DATETIMESMALLDATETIME字段,那么这将有效:

CONVERT(SMALLDATETIME, GETDATE())

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

所以你的代码是:

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

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

请在此处查看MSDN文档:GETDATESMALLDATETIME

答案 2 :(得分:0)

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

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