Javascript日期/时间字符串到sql日期时间

时间:2015-12-28 10:05:17

标签: javascript date mariadb type-conversion

我正在通过约会时间:

    2015-12-23T09:57:00.000Z

到mariaDB中的存储过程。存储过程不喜欢javascript日期/时间,如何转换存储过程中使用的日期/时间?

我一直在玩'str_to_date':

    select str_to_date('2015-12-23T09:57:00.000Z', '%Y-%M-%dT%h:%i:%s');

然而,这会返回(NULL)。

3 个答案:

答案 0 :(得分:1)

1)替代方案 将字符串传递给存储过程然后在sql中转换为datetime,如下所示:

select CONVERT(DATETIME,REPLACE(REPLACE('2015-12-23T09:57:00.000Z','T',' '),'Z',''))

答案 1 :(得分:1)

您可以使用时间戳,在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)

答案 2 :(得分:0)

您的%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                                      |
+-----------------------------------------------------------------+