PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Ekstrak hari kerja, milidetik, mikrodetik, nanodetik dari tanggal di Postgres

Saya tidak yakin padanan apa yang Anda cari, tetapi:

  • tidak ada presisi nanodetik di PostgreSQL:Rentang p yang diizinkan (presisi) dari 0 hingga 6 untuk timestamp dan interval jenis.
  • beberapa bagian tanggal termasuk yang lain:yaitu milliseconds berisi seconds &microseconds berisi milliseconds (dan dengan demikian seconds juga).

Jika Anda mencari nilai yang terpisah secara logis, Anda perlu menghitung, mis.:

select extract(dow from ts) dow,       -- day-of-week (where weeks start on sunday, which is 0)
       extract(isodow from ts) isodow, -- ISO day-of-week (where weeks start on monday, which is 1)
       floor(extract(seconds from ts))::int only_seconds,
       floor(extract(milliseconds from ts))::int - 1000 * floor(extract(seconds from ts))::int only_milliseconds,
       floor(extract(microseconds from ts))::int - 1000 * floor(extract(milliseconds from ts))::int only_microseconds,
       extract(microseconds from ts) all_microseconds

Atau, jika Anda ingin mengetahui seberapa jauh stempel waktu dalam minggu sebenarnya, Anda dapat menggunakan timestamp (dan interval ) aritmatika juga:

select ts - date_trunc('week', ts) time_elapsed_since_monday

(Meskipun agak sulit untuk menghitung ini selama berminggu-minggu yang dimulai pada hari Minggu:date_trunc bekerja hanya dengan ISO minggu).

http://rextester.com/SOOO48159



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Partisi Postgresql dan sqlalchemy

  2. kesalahan pg_restore:peran XXX tidak ada

  3. Pembuatan data dan kualitas perangkat keras

  4. Regex menghapus semua kemunculan beberapa karakter dalam sebuah string

  5. Bagaimana cara menghapus tampilan tabel * atau * dari database PostgreSQL?