【问题标题】:STR_TO_DATE not working with the node jsSTR_TO_DATE 不适用于节点 js
【发布时间】:2017-12-18 07:45:40
【问题描述】:

当我想在 mysql 中运行以下查询时

  select STR_TO_DATE(m.plan_start_date,'%Y-%m-%d') as plan_start_date from MemberDetails m ;

它按预期工作,但是当我使用节点 js 运行相同时

         return dbConnection.query("select STR_TO_DATE(m.plan_start_date,'%Y-%m-%d') as plan_start_date from MemberDetails m ",callback);

但随后它作为 db 中存在的数据返回。就这样

{
    "status": true,
    "members": [
        {
            "plan_start_date": "2017-12-27T18:30:00.000Z"
        }

    ]
}

它以不同的格式发送数据并将日期作为字符串而不是日期发送。

package.json

{
  "name": "perb",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.18.2",
    "cookie-parser": "~1.4.3",
    "cors": "2.8.4",
    "debug": "~2.6.9",
    "express": "~4.15.5",
    "forever-monitor": "^1.7.1",
    "jade": "~1.11.0",
    "moment": "2.19.3",
    "morgan": "~1.9.0",
    "multer": "1.3.0",
    "mysql2": "1.5.0",
    "path": "0.12.7",
    "promise": "8.0.1",
    "request": "2.83.0",
    "serve-favicon": "~2.4.5"
  }
}

npm 版本:5.5.1 节点:v8.9.1

【问题讨论】:

  • 如果您尝试链接STR_TO_DATE(m.plan_start_date,'%Y-%m-%d') as plan_start_date2,属性plan_start_date2 是否包含您期望的内容?
  • plan_start_date 的数据类型是什么?
  • plan_start_date 类型为日期时间。 @JeanDoux
  • @FrostyZ 结果还是一样
  • 那么您正在尝试使用 str_to_date 将日期时间转换为日期,您看到问题了吗?

标签: javascript mysql node.js date


【解决方案1】:

您没有使用正确的功能,因为 plan_start_date 是日期时间,您应该使用 DATE_FORMAT :

  SELECT  DATE_FORMAT(m.plan_start_date,'%Y-%m-%d') as plan_start_date
  FROM MemberDetails m ;

如果你想要一个日期而不是日期时间,你可以使用函数 date :

  SELECT  DATE(m.plan_start_date) as plan_start_date
  FROM MemberDetails m ;

【讨论】:

  • 现在格式已更改,但仍将日期作为字符串返回
猜你喜欢
  • 2016-11-29
  • 2016-01-25
  • 1970-01-01
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
  • 2016-03-27
  • 1970-01-01
  • 2019-06-03
相关资源
最近更新 更多