成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用PostgreSQL數據庫日期類型的4個提示

數據庫 其他數據庫 數據庫運維 PostgreSQL
PostgreSQL你可以通過簡單調用PostgreSQL內置函數來實現數據庫日期類型功能。

當我們這些使用Rails的人看到例如5.weeks.from_nowor3.days.ago + 2.hours時并不會感到驚訝。同樣,PostgreSQL也可以做到,你可以通過簡單調用PostgreSQL內置函數來實現相同的功能。

當前時間/日期/時間戳

獲取當前時間的方式有很多種,在這之前我們需要知道以下兩種類型的區別:

  1. 總是返回當前的值 (clock_timestamp())
  2. 總是返回當前值,但在事務中它返回的是事務開始的時間(now())

讓我們看下面這個例子

  1. postgres=# BEGIN;  
  2. postgres=# SELECT now();  
  3.               now  
  4. -------------------------------  
  5.  2013-08-26 12:17:43.182331+02  
  6.  
  7. postgres=# SELECT now();  
  8.               now  
  9. -------------------------------  
  10.  2013-08-26 12:17:43.182331+02  
  11.  
  12. postgres=# SELECT clock_timestamp();  
  13.         clock_timestamp  
  14. -------------------------------  
  15.  2013-08-26 12:17:50.698413+02  
  16.  
  17. postgres=# SELECT clock_timestamp();  
  18.         clock_timestamp  
  19. -------------------------------  
  20.  2013-08-26 12:17:51.123905+02  

你會發現,語句執行時候clock_timestamp()的返回值每次都發生了改變,但是now()總是返回相同的值。當你需要考慮時區時,你應該特別注意這兩個函數差異。

時間區間:比如3天前

使用interval操作符你可以輕松的構建一個時間區間,例如

  • interval '1 day'
  • interval '5 days'
  • interval '5 days' + interval '3 hours'
  • interval '5 days 3 hours'

你可以看到,我們可以用interval操作符來簡單的進行數學運算,這特別適合于構建例如3天前這樣的時間區間,比如:

  1. postgres=# SELECT now() - interval '3 days';  
  2.            ?column?  
  3. -------------------------------  
  4.  2013-08-23 12:23:40.069717+02  

獲取星期幾

有些時候對于一個給定的時間,你僅僅只想知道的是這天是星期幾或者是它屬于那個世紀的更或者你只想知道它是一年中的第幾天。PostgreSQL中的extract()函數提供了這種功能。

如下例子是在8月26日 星期一進行測試的。

  1. postgres=# SELECT extract(DAY FROM now());  
  2.  date_part  
  3. -----------  
  4.         26  
  5.  
  6. postgres=# SELECT extract(DOW FROM now());  
  7.  date_part  
  8. -----------  
  9.          1  

 

extract()還有其他更強大的功能,詳情請參閱官方文檔,在這里只列舉了一小部分:

  • day
  • century
  • dow(day of week)
  • doy(day of year)
  • minute
  • month
  • year

時區轉換

有些時候,時區轉換對于特定時間在不同時區顯示特別有用。AT TIME ZONE提供了這種功能,它是如何做到的?我們將在一個事務中進行演示,因為同一事務中now()函數總是返回相同的值,從而我們可以很容易看到同一時間在不同時區顯示的差別。

  1. postgres=# BEGIN;  
  2. BEGIN 
  3. postgres=# SELECT now();  
  4.               now  
  5. -------------------------------  
  6.  2013-08-26 12:39:39.122218+02  
  7.  
  8. postgres=# SELECT now() AT TIME ZONE 'GMT';  
  9.           timezone  
  10. ----------------------------  
  11.  2013-08-26 10:39:39.122218  
  12.  
  13. postgres=# SELECT now() AT TIME ZONE 'GMT+1';  
  14.           timezone  
  15. ----------------------------  
  16.  2013-08-26 09:39:39.122218  
  17.  
  18. postgres=# SELECT now() AT TIME ZONE 'PST';  
  19.           timezone  
  20. ----------------------------  
  21.  2013-08-26 02:39:39.122218  

英文原文:4 Tips for Working with Dates in PostgreSQL

譯文鏈接:http://www.oschina.net/translate/4-tips-for-working-with-dates-in-postgresql

責任編輯:林師授 來源: OSCHINA 編譯
相關推薦

2022-10-12 13:33:25

PostgreSQL數據庫

2019-11-20 09:08:46

PostgreSQL數據庫

2010-05-26 10:15:11

MySQL數據庫

2011-08-25 09:56:05

PostgreSQLpg_ident.co

2024-03-04 10:48:15

PostgreSQL數據庫

2022-06-26 07:18:17

數據庫NodePostgreSQL

2024-09-10 08:00:00

PostgreSQL數據庫

2011-03-25 13:08:19

PostgreSQL數

2025-04-02 08:30:00

IvorySQLOraclePostgreSQL

2014-03-03 10:10:37

PostgreSQL數組

2010-05-13 15:30:47

2011-08-24 13:37:33

PostgreSQLpg_hba.conf

2010-04-29 15:22:25

Oracle數據庫

2021-09-28 09:25:05

NoSQL數據庫列式數據庫

2014-01-05 17:08:09

PostgreSQL數據類型

2020-02-17 09:06:52

安全數據庫SQL

2017-10-13 15:06:18

數據庫PostgreSQL特性

2019-02-11 09:48:02

2023-03-29 08:00:00

PostgreSQL數據庫

2010-05-13 11:45:56

MySQL數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲综合区 | 岛国一区 | 亚州视频在线 | 免费观看国产视频在线 | 精品欧美一区二区久久久伦 | 成人免费视频网址 | av天空| 久久av一区二区三区 | av一区在线| 成人福利在线观看 | 国产精品久久久久久久模特 | 亚洲乱码一区二区三区在线观看 | 精品国产一区二区三区免费 | 国产真实乱对白精彩久久小说 | 香蕉一区| 91在线免费视频 | 中文字幕日韩一区 | 伦理午夜电影免费观看 | 国产精品久久久久久久久久久久久 | 亚洲精品在线免费播放 | 国产激情一区二区三区 | 亚洲国产精品久久久久 | 99视频入口 | 亚洲视频网 | 伊人久久在线观看 | 国产午夜精品久久久 | 国产婷婷色一区二区三区 | 91久久国产综合久久 | 久久国产精品99久久久久久丝袜 | 中文字幕精品一区二区三区精品 | 高清视频一区二区三区 | 久久久久资源 | 欧美a级成人淫片免费看 | 欧美中文字幕一区 | 天天看天天摸天天操 | 久久久久国产一区二区三区四区 | 亚洲乱码一区二区 | 国产九九九九 | 中文字幕精品一区二区三区在线 | 一区二区福利视频 | 国产视频福利 |