Javascript date/time 字符串到 sql 日期时间
Javascript date/time string to sql date time
我正在传递日期时间:
2015-12-23T09:57:00.000Z
到 mariaDB 中的存储过程。存储过程不喜欢 javascript date/time,如何转换 date/time 以便在存储过程中使用?
我一直在玩 'str_to_date':
select str_to_date('2015-12-23T09:57:00.000Z', '%Y-%M-%dT%h:%i:%s');
然而这 returns (NULL).
1) 备选方案
将字符串传递给存储过程,然后在 sql 中像这样转换为日期时间:
select CONVERT(DATETIME,REPLACE(REPLACE('2015-12-23T09:57:00.000Z','T',' '),'Z',''))
你可以使用时间戳,在 JS 中像这样获取 UNIX 时间戳
var now = new Date(),
unixTimestamp = Math.floor(now.getTime() / 1000);
// JS operates with miliseconds, divide by 1000 to get seconds
并且在 mariaDB 中使用函数 FROM_UNIXTIME(timestamp)
你的 %M
应该是 %m
。
另一种方法:
+-----------------------------------------------------------------------+
| str_to_date(LEFT('2015-12-23T09:57:00.000Z',19), '%Y-%m-%dT%h:%i:%s') |
+-----------------------------------------------------------------------+
| 2015-12-23 09:57:00 |
+-----------------------------------------------------------------------+
如果您有 5.6.4 或更高版本:
+-----------------------------------------------------------------+
| str_to_date('2015-12-23T09:57:00.987Z', '%Y-%m-%dT%h:%i:%s.%f') |
+-----------------------------------------------------------------+
| 2015-12-23 09:57:00.987000 |
+-----------------------------------------------------------------+
我正在传递日期时间:
2015-12-23T09:57:00.000Z
到 mariaDB 中的存储过程。存储过程不喜欢 javascript date/time,如何转换 date/time 以便在存储过程中使用?
我一直在玩 'str_to_date':
select str_to_date('2015-12-23T09:57:00.000Z', '%Y-%M-%dT%h:%i:%s');
然而这 returns (NULL).
1) 备选方案 将字符串传递给存储过程,然后在 sql 中像这样转换为日期时间:
select CONVERT(DATETIME,REPLACE(REPLACE('2015-12-23T09:57:00.000Z','T',' '),'Z',''))
你可以使用时间戳,在 JS 中像这样获取 UNIX 时间戳
var now = new Date(),
unixTimestamp = Math.floor(now.getTime() / 1000);
// JS operates with miliseconds, divide by 1000 to get seconds
并且在 mariaDB 中使用函数 FROM_UNIXTIME(timestamp)
你的 %M
应该是 %m
。
另一种方法:
+-----------------------------------------------------------------------+
| str_to_date(LEFT('2015-12-23T09:57:00.000Z',19), '%Y-%m-%dT%h:%i:%s') |
+-----------------------------------------------------------------------+
| 2015-12-23 09:57:00 |
+-----------------------------------------------------------------------+
如果您有 5.6.4 或更高版本:
+-----------------------------------------------------------------+
| str_to_date('2015-12-23T09:57:00.987Z', '%Y-%m-%dT%h:%i:%s.%f') |
+-----------------------------------------------------------------+
| 2015-12-23 09:57:00.987000 |
+-----------------------------------------------------------------+