将时间去掉横线转化为int类型
有些特殊的情况需要将时间去掉横线转化为int类型方便前端拼接
1.初始时间类型为正常的time.Time
返回的是:
“log_date”: “2018-08-08T00:00:00Z”,
数据库得到的是:
2.
select to_number(log_date::text, '9999999999999') as log_date
就可以吧log_date转化为int类型(记得在返回的参数里也设置为int类型)得到的返回是结果:
“log_date”: 20180808,
数据库得到的是:
3.转化成功 ,第一个参数是要转化的值这里是是l
og_date
先把log_date转化为文本text类型,要不
to_number(text, text)
方法不匹配,第二个参数是模板,下面给出模板模式:
模式 描述
9 带有指定数值位数的值
0 带前导零的值
.(句点) 小数点
,(逗号) 分组(千)分隔符
PR 尖括号内负值
S 带符号的数值
L 货币符号
D 小数点
G 分组分隔符
MI 在指明的位置的负号(如果数字 < 0)
PL 在指明的位置的正号(如果数字 > 0)
SG 在指明的位置的正/负号
select extract(epoch from '03:21:06.678'::
time
);
这个extract(epoch from )函数得到的是
时间
是秒单位,如果需要毫秒值就直接乘以1000:
select extract(epoch from now())*1000;
去掉原来的毫秒值
向下取整函数floor()
select floor(extract(epoc...
前提:当数据库中保存的是
time
stamp
类型
时,我们需要通过这个
时间
戳来做乐观数据锁,那么久需要Select出来,然后在更新的时候在Update的where条件中判断
时间
戳是否与查询时相同。
下面的SQL文查询结果是 "2018-08-20 10:09:10.815125",并且...
分析: 写道
要比较两个数据, 必须要保证数据的格式和单位一致, 才可以比较故有两个方案1、 将
int
8 转为 yyyy-mm-..............2、将yyyy-mm................转为
int
8
经过和同事讨论, 终于各自找到了一种方法
解决 写道
SELECT to_
time
stamp(1423538481.44202)将 long
类型
转换为 yyyy-mm................
类型
,注意该方法只处理到 秒, 而我们java 一般存的都
PG
数据库,
时间
戳转换
将毫秒/秒
转成
格式化后的
时间
select to_char(to_
time
stamp(
time
),'yyyy-MM-dd HH24-MI-SS') as
time
from tablename;
#统计每个月的记录数
select to_char(to_
time
stamp(
time
),'yyyy-MM') as
time
,count(1) from tablename group by
time
;
我之前的字段
类型
为
int
,需要修改成
time
stamp
时间
类型
,尝试之后发现不能直接转换,报错如下:
ERROR: cannot cast type
int
eger to
time
stamp without
time
zone
LINE 2: TYPE
TIME
STAMP USING create_
time
::
time
stamp without
time
zon...
错误:无法将
类型
整数强制转换为没有时区的
时间
戳
解决方案:
第一步:先把
int
类型
的字段修改成 VARCHAR
ALTER.