需求 : 查詢某個時間一秒内的資料 解決 :将時間轉換為時間戳,加一秒 SELECT
*
FROM
buct_composedata
where paraid = '14112402C30000000401' and systemtime between ('2020-05-31 22:01:30') and ('2020-05-31 22:01:30'::timestamp + '1 sec')
SQL:pgsql中查詢一段時間内資料及相關時間操作 函數 傳回類型 描述 例子 to_char(timestamp, text) text 把時間戳轉換成字串 to_char(current_timestamp, ‘HH12:MI:SS’) to_char(interval, text) text 把時間間隔轉為字串 to_char(interval ‘15h 2m 12s’, ‘HH24:MI:SS’) to_char(int, text) text 把整數轉換成字串 to_char(125, ‘999’) to_char(double precision, text) text 把實數/雙精度數轉換成字串 to_char(125.8::real, ‘999D9’) to_char(numeric, text) text 把numeric轉換成字串 to_char(-125.8, ‘999D99S’) to_date(text, text) date 把字串轉換成日期 to_date(‘05 Dec 2000’, ‘DD Mon YYYY’) to_timestamp(text, text) timestamp 把字串轉換成時間戳 to_timestamp(‘05 Dec 2000’, ‘DD Mon YYYY’) to_timestamp(double) timestamp 把UNIX紀元轉換成時間戳 to_timestamp(200120400) to_number(text, text) numeric 把字串轉換成numeric to_number(‘12,454.8-’, ‘99G999D9S’)
模式 描述 HH 一天的小時數(01-12) HH12 一天的小時數(01-12) HH24 一天的小時數(00-23) MI 分鐘(00-59) SS 秒(00-59) MS 毫秒(000-999) US 微秒(000000-999999) AM 正午辨別(大寫) Y,YYY 帶逗号的年(4和更多位) YYYY 年(4和更多位) YYY 年的後三位 YY 年的後兩位 Y 年的最後一位 MONTH 全長大寫月份名(空白填充為9字元) Month 全長混合大小寫月份名(空白填充為9字元) month 全長小寫月份名(空白填充為9字元) MON 大寫縮寫月份名(3字元) Mon 縮寫混合大小寫月份名(3字元) mon 小寫縮寫月份名(3字元) MM 月份号(01-12) DAY 全長大寫日期名(空白填充為9字元) Day 全長混合大小寫日期名(空白填充為9字元) day 全長小寫日期名(空白填充為9字元) DY 縮寫大寫日期名(3字元) Dy 縮寫混合大小寫日期名(3字元) dy 縮寫小寫日期名(3字元) DDD 一年裡的日子(001-366) DD 一個月裡的日子(01-31) D 一周裡的日子(1-7;周日是1) W 一個月裡的周數(1-5)(第一周從該月第一天開始) WW 一年裡的周數(1-53)(第一周從該年的第一天開始)
計算兩個時間相差 select date_part('day', now() - '1997-02-08 '::timestamp);
計算固定間隔時間 SELECT now()::timestamp + '1 year'; --目前時間加1年
SELECT now()::timestamp + '1 month'; --目前時間加一個月
SELECT now()::timestamp + '1 day'; --目前時間加一天
SELECT now()::timestamp + '1 hour'; --目前時間加一個小時
SELECT now()::timestamp + '1 min'; --目前時間加一分鐘
SELECT now()::timestamp + '1 sec'; --加一秒鐘
select now()::timestamp + '1 year 1 month 1 day 1 hour 1 min 1 sec'; --加1年1月1天1時1分1秒
SELECT now()::timestamp + (col || ' day')::interval FROM table --把col字段轉換成天 然後相加