如何在将日期和时间插入MSSQL查询时格式化日期和时间?
我知道之前已经问过这个问题,但我不知道为什么在将其插入数据库时如何格式化当前日期和时间时会遇到很多麻烦。
最初以下INSERT查询有效但现在我想添加当前日期和时间,并将分钟作为最后一个字符。没有秒或Millaseconds
INSERT INTO Form_Submission (ID,Submission_Date,Status)
VALUES ('23', CURRENT_TIMESTAMP, 'Open');
我要找的格式是:2015-04-08 13:42
答案 0 :(得分:2)
您可以使用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
答案 1 :(得分:0)
如果您要插入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
答案 2 :(得分:0)
也许你可以使用FORMAT()
T-SQL函数:
INSERT INTO Form_Submission (ID,Submission_Date,Status)
VALUES ('23', FORMAT(CURRENT_TIMESTAMP, 'yyyy-MM-dd hh:mm'), 'Open')