格式化日期时,NodeJS小时中的SQL查询处于关闭状态
我想格式化查询中的dtime2字段:格式化日期时,NodeJS小时中的SQL查询处于关闭状态,sql,sql-server,node.js,date,formatting,Sql,Sql Server,Node.js,Date,Formatting,我想格式化查询中的dtime2字段:SELECT format(MAX(dTime),'yyyy-MM-dd hh:MM:ss')FROM triangulations 这将给出输出{result:[{'':'03:34:30'}],rowcount:1} 时间应该是15点。将格式保留在查询之外时也会显示此信息。查询:从三角剖分中选择MAX(dTime)给出输出: {结果:[{'':2017年7月17日星期一15:34:30 GMT+0000(协调世界时)}, 行计数:1} 我使用库节点mssq
SELECT format(MAX(dTime),'yyyy-MM-dd hh:MM:ss')FROM triangulations
这将给出输出{result:[{'':'03:34:30'}],rowcount:1}
时间应该是15点。将格式保留在查询之外时也会显示此信息。查询:从三角剖分中选择MAX(dTime)
给出输出:
{结果:[{'':2017年7月17日星期一15:34:30 GMT+0000(协调世界时)},
行计数:1}
我使用库节点mssql连接器在NodeJs中执行查询
为什么SQL会给我错误的时间?通常是当你的时间不好,而分钟和日期都很好时,这意味着你使用了错误的时区。这可能意味着要么将错误时区中的时间写入数据库,要么从数据库中获取预期的其他时区中的日期 在处理日期时,您应该始终明确时区(将日期放入数据库时,您在这里似乎没有这样做),如果您总是以UTC格式保存日期(您在这里阅读的日期似乎就是这种情况),那么事情就会变得容易得多 在节点中,您可以使用“时刻”模块(特别是“时刻时区”)转换日期。见:
yyyy-MM-dd hh:MM:ss
,hh
表示您想要12小时周期格式的小时,因此3和15始终是3(上午和下午)。使用HH
以24小时周期格式获取它们:
yyyy-MM-dd HH:MM:ss
,向下滚动至格式说明符列表。您应该使用HH而不是HH:
SELECT FORMAT(MAX(dTime),'yyyy-MM-dd HH:mm:ss') FROM triangulations
那么,是否可以在SQL查询中将数据时间格式化为正确的时区呢?Me first:P很好地发现了它!你说得对,比我早16秒:P(几分钟后它将显示为同一时间)