如何将秒转换为日期时间格式?

时间:2018-04-19 09:26:40

标签: sql-server datetime

我有这个变量var resetPasswordExpires = 1524133033085;,我想将秒转换为datetime格式来更新数据库sql列。 我这样做了

 var d = new Date();
 d.toString(resetPasswordExpires);

我采取d = Thu Apr 19 2018 12:21:02 GMT + 0300(GTB Daylight  时间)当然canot将列保存到数据库。 数据库列格式为DATETIME

查询:

UPDATE User SET resetPasswordToken = 
c2d313284f6de68cc1f18e3c45b0ea2c720220f0, resetPasswordExpires = Thu Apr 19 
2018 12:21:02 GMT+0300 (GTB Daylight Time) WHERE UserID = 21;

3 个答案:

答案 0 :(得分:2)

一个选项是DATEADD你的值到UNIX纪元开始的秒数:

SELECT DATEADD(s, 1524133033085/1000, '19700101 00:00:00:000');

19.04.2018 10:17:13

Demo

请注意,我将您的值除以1000,因为它以毫秒为单位。

答案 1 :(得分:1)

我想这已在Convert JS date time to MySQL datetime中得到解答。请验证您的要求。

var resetPasswordExpires = 1524133033085;
var d = new Date(1524133033085).toISOString().slice(0, 19).replace('T', ' ');

答案 2 :(得分:1)

经过测试和解决

将时间戳转换为以下内容

在控制台中试用

var resetPasswordExpires = 1524133033085;
var d = new Date();
d.toString(resetPasswordExpires);
var passDateToISOString  = d.toISOString();
passDateToISOString

控制台中的结果

"2018-04-19T09:55:14.824Z"

然后将 passDateToISOString 变量值传递给你的sql

示例(在Sql中尝试

UPDATE User 
SET resetPasswordToken = c2d313284f6de68cc1f18e3c45b0ea2c720220f0, 
resetPasswordExpires = '2018-04-19T09:55:14.824Z' 
WHERE UserID = 21;