在postgresql中,怎么将时间格式化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在postgresql中,怎么将时间格式化相关的知识,希望对你有一定的参考价值。
比如表中的时间列date有值如下:2009-05-31 17:21:21.203。
我要怎么样写select,将查询的时间列格式化成2009-05-31。
谢谢高手赐教。
将(来自 postgresql 的日期和时间戳)转换为 javascript 时间
【中文标题】将(来自 postgresql 的日期和时间戳)转换为 javascript 时间【英文标题】:convert (date and timestamp from postgresql) to javascript time 【发布时间】:2020-06-06 06:57:52 【问题描述】:我在 PostgreSQL 表中有两列(开始日期(日期格式)和取消日期(时间戳格式))。一个是日期格式,另一个是时间戳格式。我想得到天数中两个值之间的差异。我正在用 javascript 发送数据。
如何在javascript中计算天数的差异?例如,一个值为 2010-10-14。第二个值是 2010-10-16 04:05:06。相差 3 天。
我的问题是我在 API 响应中以 PostgreSQL(日期和时间戳)格式获取这两个值。一个简单的区别在 javascript 中不起作用(start_date-cancellation_date)。
【问题讨论】:
【参考方案1】:Javascript 日期对象在转换为毫秒之前无法进行比较。
var now = new Date(); // create new date - today
var then = new Date(now.getDate()+5); // create new date that's now + 5 days (bad variable name, sry)
var nowAdj = now.getTime(); // now adjusted to milliseconds
var thenAdj = then.getTime(); // then adjusted to milliseconds
var differenceInDays = Math.round((thenAdj - nowAdj)/(1000*60*60*24)) // Subtract now from then and multiply the results by the magic formula to return milliseconds to days.
编辑:清理了一下,“then”仍然是一个糟糕的变量名;)
【讨论】:
【参考方案2】:您可以将日期转换为新的日期对象并计算差值如下:
var date1 = new Date("2010-10-14");
var date2 = new Date("2010-10-16 04:05:06");
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
console.log(diffDays);
【讨论】:
@sulil lama 对于某些日期 javascript 控制台打印无效日期。 @code0079,当您的日期字符串为空时,新日期将默认为 1970,它将不起作用。保存到数据库并从数据库中检索时,您需要确保您的日期有效..以上是关于在postgresql中,怎么将时间格式化的主要内容,如果未能解决你的问题,请参考以下文章
如何将 bigint 字段格式化为 Postgresql 中的日期?
将 PostgreSQL SQL 转储转换为 PostgreSQL 自定义格式转储
postgresql数据库中判断是否是数字和日期时间格式函数