我在MySQL中有一个简单表,其中有两个时间戳字段:
*"。。。
creation timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
last_edit timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
"*
当我尝试用一个简单的查询获取时:
SELECT * FROM customers
从我的Node.js(mysqljs(,json返回:
创建:{},//空对象
last_edit:{}//空对象
我怎样才能得到日期
提前感谢!:(
我猜这是JDBC问题,因为我看到了类似的行为。
在我的案例中,该列被定义为
`last_edit` datetime DEFAULT NULL
JDBCgetTimestamp()
方法(建议作为正确的getter(返回{}
。
我发现使用getObject()
方法以ISO字符串格式返回了预期的DATETIME值(对于我的用例来说已经足够了(。
刚刚注意到你说你正在使用";mysqljs"所以不确定这个修复是否与您的情况相关,因为JDBC部分被抽象掉了。。。
更新:由于某种原因,getObject()
返回了一个距离数据库中显示的时间(UTC(+7小时的时间。
检查getTimestamp()
的输出表明,它是一个具有getter和setter的对象(在"字符串化"之后不存在(,并编写了一个快速转换器。
function convert_ts_(ts) {
var date = (ts.getYear() + 1900) + '-' + ((ts.getMonth() + 1) > 9 ? ts.getMonth() + 1 : '0' + (ts.getMonth() + 1)) + '-' + (ts.getDate() > 9 ? ts.getDate() : '0' + ts.getDate());
var time = (ts.getHours() > 9 ? ts.getHours() : '0' + ts.getHours()) + ':' + (ts.getMinutes() > 9 ? ts.getMinutes() : '0') + ":" + (ts.getSeconds() > 9 ? ts.getSeconds() : '0' + ts.getSeconds());
return date + 'T' + time;
}
这将返回"0"中的日期;CCD_ 6 T CCD_;带零填充的格式
您需要在表中插入至少一条记录,才能从针对它的查询中返回任何结果。
如果你出于某种原因只想从数据库中检索当前日期,你可以这样做:
SELECT CURRENT_TIMESTAMP
或
SELECT NOW()