Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menjelajahi format tanggal Postgres dan fungsinya yang berbeda

Dalam artikel ini, kita akan menjelajahi tanggal Postgres, jenis data tanggal yang berbeda, kegunaan dan fungsi.

Tanggal dan waktu sangat membantu untuk analisis data dan menyimpan data untuk memeriksa kapan suatu peristiwa benar-benar terjadi. Misalnya, ketika Anda memiliki pesanan pembelian dan penjualan, penghasilan bulanan atau triwulanan, dan lainnya. Format tanggal bervariasi di berbagai negara, oleh karena itu ini bisa menjadi tugas yang rumit bagi mereka yang baru dalam pengelolaan database dan bekerja dengan kolom tanggal. Format atau tipe data kolom tanggal harus selalu cocok dengan input pengguna. Selain itu, Anda harus mengonversi tampilan format tanggal sesuai kebutuhan pengguna Anda.

Postgres memiliki berbagai tipe data yang didukung. Sebelum melanjutkan lebih jauh, saya sarankan Anda merujuk ke Menjelajahi Berbagai Jenis Data Postgres untuk memahaminya secara lebih mendetail.

Tipe data TANGGAL pascagres

Postgres menggunakan tipe data DATE untuk menyimpan tanggal yang berbeda dalam format YYYY-MM-DD. Ini menggunakan 4 byte untuk menyimpan nilai tanggal dalam kolom.

  • Tanggal Terendah:4713 SM
  • Tanggal Tertinggi:5874897 SM
  • Format tanggal:YYYY-MM-DD ( Mis. 2021-01-01)

Anda dapat mendesain tabel Postgres dengan kolom TANGGAL dan menggunakan kata kunci DEFAULT TANGGAL_CURRENT  untuk menggunakan tanggal sistem saat ini sebagai nilai default di kolom ini.

CREATE TABLE SalesOrders (
Order_id serial PRIMARY KEY,
Orderdetails VARCHAR (255) NOT NULL,
OrderDate DATE NOT NULL DEFAULT CURRENT_DATE
);
INSERT INTO SalesOrders (Orderdetails)
VALUES('Sample Order for customer ABC');

SELECT * FROM SalesOrders;

Seperti yang ditunjukkan di bawah ini, SQL memasukkan nilai untuk kolom [TanggalPesanan] secara otomatis dengan tanggal sistem saat ini dalam format YYYY-MM-DD.

Fungsi TANGGAL pascagres

Kita sering perlu memodifikasi format tanggal atau melakukan perhitungan pada nilai-nilai yang ada yang tersimpan di tabel Postgres. Misalnya, di India, format tanggal yang biasa adalah DD-MM-YYYY. Oleh karena itu, ketika pengguna India melihat data, kemungkinan besar kami ingin dia melihat data dalam format yang paling dia kenal. Dalam hal ini, Fungsi SQL memainkan peran penting.

Fungsi TO_CHAR()

Fungsi ini berguna untuk memberikan output dari nilai tanggal Postgres dalam format yang ditentukan. Ia menerima dua parameter berikut.

  • Tanggal masukan:Ini adalah tanggal yang ingin Anda ubah ke format tertentu.
  • Format tanggal:Di sinilah Anda menentukan format tanggal baru.

Kueri berikut mengonversi nilai tanggal yang ada yang disimpan dalam tabel [Pesanan Penjualan] ke dalam format DD-MM-YYYY.

SELECT Orderdetails,OrderDate as ExistingDateformat,
to_char(OrderDate,'DD-MM-YYYY') As NewDateFormat FROM SalesOrders;

Nilai yang didukung dalam fungsi to_char() adalah seperti yang ditunjukkan di bawah ini.

YYYY Tahun dalam empat digit
YYY Tiga digit terakhir dalam satu tahun
YY Dua digit terakhir dalam satu tahun
BULAN Nama bulan dalam huruf kapital
Bulan Nama bulan dengan huruf pertama kapital
bulan Nama bulan dengan huruf kecil
SEN/Sen/Senin Singkatan bulan dalam huruf kapital semua, huruf pertama kapital dan huruf kecil, masing-masing
MM Nomor bulan (01-12)
HARI/Hari/hari Nama hari dengan huruf kapital semua, huruf pertama kapital, dan huruf kecil, masing-masing
DDD Hari dalam setahun (001 hingga 366)
DD Hari dalam sebulan (01 hingga 31)
D Hari dalam seminggu (Minggu (1) sampai Sabtu (7))
L Minggu setiap bulan
WW Minggu dalam setahun

Beberapa contoh format tanggal yang berbeda ditentukan dalam SQL berikut.

SELECT Orderdetails,OrderDate as ExistingDateformat,
to_char(OrderDate,'DD-MM-YYYY') As DDMMYYYY,
to_char(OrderDate,'DD-MM-YY') As DDMMYY,
to_char(OrderDate,'DD.MM.YY') As "DD.MM.YY",
to_char(OrderDate,'MM/DD/YYYY') As "MM/DD/YYYY",
to_char(OrderDate,'DAY MM/DD/YYYY') As "MM/DD/YYYY",
to_char(OrderDate,'DDD MM/DD/YYYY') As "DDD MM/DD/YYYY"
FROM SalesOrders

Fungsi Now()

Fungsi Now() mengembalikan stempel waktu sistem saat ini (tanggal dan waktu).

Anda dapat menentukan titik dua ganda (::) untuk memberikan nilai DATETIME ke nilai DATE.

Anda dapat menggabungkan fungsi TO_CHAR() dan Now() untuk mengonversi stempel waktu saat ini ke dalam format yang ditentukan.

SELECT TO_CHAR(NOW() :: DATE, 'dd-mm-yyyy');

Minus dan operator interval

Anda dapat menggunakan operator minus (-) untuk menghitung selisih antara dua tanggal. Misalnya, kueri di bawah ini mengembalikan interval antara stempel waktu saat ini dan [Tanggal Pemesanan] dari tabel Pesanan Penjualan.

SELECT Orderdate,now() as currentdate,
now()-Orderdate as Interval FROM SalesOrders
where order_id=2;

Anda juga dapat menentukan interval untuk mengembalikan tanggal setelah jangka waktu tertentu. Misalnya, kueri SQL di bawah ini memberikan nilai berikut.

  • Untuk tanggal mendatang, tentukan nilai interval 2 jam dari stempel waktu saat ini: now() + interval ‘2 jam’
  • Untuk tanggal mendatang, tentukan nilai interval 1 hari dari stempel waktu saat ini: now() + interval ‘1 hari’
  • Untuk tanggal yang lalu, tentukan nilai interval satu tahun dari stempel waktu saat ini: Sekarang() – interval ‘1 tahun’
  • Menghitung satu tahun setelah tanggal dari nilai yang disimpan di kolom [Tanggal Pemesanan]: tanggal pemesanan – interval ‘1 tahun’
SELECT (NOW() + interval '2 hour') AS twohourslater,
(NOW() + interval '1 day') AS Onedaylater,
(NOW() - interval '1 year') AS OneYearBefore,
(Orderdate- interval '1 year') as Orderdatedifference
from salesorders;

Fungsi AGE()

Fungsi AGE() mengembalikan perbedaan tanggal dalam tahun, bulan, dan hari. Anda dapat menggunakan fungsi ini untuk menghitung usia seseorang.

Fungsi ini menerima dua parameter tanggal dan mengurangi nilai tanggal pertama dari yang kedua.

Jika Anda membalikkan nilai dalam skrip fungsi di atas, itu mengembalikan nilai negatif.

Dalam contoh lain, katakanlah seseorang memiliki tanggal lahir 1990-07-01. Oleh karena itu, usia seseorang dapat dihitung seperti di bawah ini.

SELECT current_date,
AGE(timestamp '1990-07-01') as EmpAge;

Fungsi EXTRACT()

Fungsi Extract() mengembalikan hari, minggu, bulan, tahun, dan kuartal dari nilai tanggal yang ditentukan.

Ekstrak satu tahun

SELECT EXTRACT(YEAR FROM TIMESTAMP '2021-06-28 10:30:15') as year;

Ekstrak sebulan

SELECT EXTRACT(Month FROM TIMESTAMP '2021-06-28 10:30:15') as Month;

Ekstrak Seperempat

SELECT EXTRACT(QUARTER FROM TIMESTAMP '2021-06-28 10:30:15') as QUARTER;

Mengekstrak hari dalam seminggu

SELECT EXTRACT(DOW FROM TIMESTAMP '2021-06-28 10:30:15') as DOW ;

Mengekstrak hari dalam setahun

SELECT EXTRACT(DOY FROM TIMESTAMP '2021-06-28 10:30:15') as DOY ;

Anda juga dapat menggunakan fungsi EXTRACT() dalam kombinasi dengan INTERVAL. Misalnya, di bawah ini kami menentukan interval sebagai 7 tahun 9 bulan 20 hari 09 jam 12 menit dan 13 detik. Fungsi ekstrak mengembalikan nilai individual.

SELECT EXTRACT(YEAR
FROM INTERVAL '7 years 9 months 20 days 09 hours 12 minutes 13 second' ),
EXTRACT(Month
FROM INTERVAL '7 years 9 months 20 days 09 hours 12 minutes 13 second' ),
EXTRACT(Day
FROM INTERVAL '7 years 9 months 20 days 09 hours 12 minutes 13 second' ),
EXTRACT(hour
FROM INTERVAL '7 years 9 months 20 days 09 hours 12 minutes 13 second' ),
EXTRACT(Minute
FROM INTERVAL '7 years 9 months 20 days 09 hours 12 minutes 13 second' );
;

AT TIMEZONE

Terkadang, Anda perlu mengubah stempel waktu menjadi zona waktu yang berbeda. Misalnya, Anda dapat menyimpan nilai tanggal dalam UTC (Koordinator waktu universal) dan mengonversi zona waktu sesuai kebutuhan.

SELECT * FROM pg_timezone_names;

Untuk memeriksa zona waktu saat ini, gunakan SHOW TIMEZONE seperti yang ditunjukkan di bawah ini.

Anda dapat memilih nilai zona waktu yang diperlukan dari pg_timezone_names dan menggunakan AT TIME ZONE untuk mendapatkan output per zona waktu yang ditentukan.

SELECT '2021-06-28 07:09:19'::timestamp AT TIME ZONE 'America/Chicago';

Demikian pula, kita bisa mendapatkan output zona waktu yang berbeda menggunakan AT TIME ZONE.

SELECT '2021-06-28 07:09:19'::timestamp AT TIME ZONE 'America/New_York';

SELECT '2021-06-28 07:09:19'::timestamp AT TIME ZONE 'Asia/Qatar';

SELECT '2021-06-28 07:09:19'::timestamp AT TIME ZONE 'Europe/Istanbul';

Ringkasan

Jenis tanggal Postgres sangat penting dan berharga saat menyimpan tanggal dan cap waktu di hampir setiap tabel database relasional. Anda memerlukannya untuk berbagai tujuan seperti penyisipan pesanan atau saat memperbarui stempel waktu, pesanan pembelian dan penjualan, detail acara, informasi pelanggan dan karyawan, dan banyak lagi. Anda dapat menggunakan beberapa fungsi Postgres untuk mengonversi jenis tanggal ke zona waktu, format, dan informasi spesifik yang diperlukan untuk menyederhanakan ekstraksi dan analisis data Anda.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa menggunakan kumpulan koneksi mssql tunggal di beberapa rute dalam aplikasi web Express 4?

  2. Skrip Inventaris Koleksi SQL Server -2

  3. Cara Menjalankan SQL Server 2017 &2019 Secara Bersamaan di Mac

  4. Masuk ke Microsoft SQL Server Kesalahan:18456

  5. Hitung baris per jam di SQL Server dengan nilai tanggal-waktu penuh sebagai hasilnya