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

DATEPART() Contoh di SQL Server

Di SQL Server, T-SQL DATEPART() fungsi mengembalikan bilangan bulat yang mewakili datepart yang ditentukan dari tanggal yang ditentukan . Misalnya, Anda dapat meneruskan 2021-01-07 dan minta SQL Server mengembalikan hanya bagian tahun (2021 ).

Anda juga dapat mengekstrak bagian waktu. Misalnya, Anda dapat memasukkan 2018-06-02 08:24:14.3112042 dan minta SQL Server hanya mengembalikan porsi jam (8 ).

Contoh di bawah.

Sintaks

Pertama, sintaks. DATEPART() sintaksnya seperti ini:

DATEPART ( datepart , date )

Dimana datepart adalah bagian dari date (nilai tanggal atau waktu) yang akan menampilkan bilangan bulat.

Contoh 1

Berikut adalah contoh dasar di mana saya mengembalikan komponen tahun dari tanggal.

SELECT DATEPART(year, '2021-01-07') AS Result;

Hasil:

+----------+
| Result   |
|----------|
| 2021     |
+----------+

Contoh 2

Dalam contoh ini saya menetapkan tanggal ke variabel, lalu saya menggunakan beberapa contoh DATEPART() untuk mengambil bagian yang berbeda dari tanggal tersebut.

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT 
    DATEPART(year, @date) AS Year,
    DATEPART(quarter, @date) AS Quarter,
    DATEPART(month, @date) AS Month,
    DATEPART(dayofyear, @date) AS 'Day of Year',
    DATEPART(day, @date) AS Day,
    DATEPART(week, @date) AS Week,
    DATEPART(weekday, @date) AS Weekday;

Hasil:

+--------+-----------+---------+---------------+-------+--------+-----------+
| Year   | Quarter   | Month   | Day of Year   | Day   | Week   | Weekday   |
|--------+-----------+---------+---------------+-------+--------+-----------|
| 2018   | 2         | 6       | 153           | 2     | 22     | 7         |
+--------+-----------+---------+---------------+-------+--------+-----------+

Contoh 3

Anda juga dapat mengambil berbagai bagian waktu dari tanggal.

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT 
    DATEPART(hour, @date) AS Hour,
    DATEPART(minute, @date) AS Minute,
    DATEPART(second, @date) AS Second,
    DATEPART(millisecond, @date) AS Millsecond,
    DATEPART(microsecond, @date) AS Microsecond,
    DATEPART(nanosecond, @date) AS Nanosecond;

Hasil:

+--------+----------+----------+--------------+---------------+--------------+
| Hour   | Minute   | Second   | Millsecond   | Microsecond   | Nanosecond   |
|--------+----------+----------+--------------+---------------+--------------|
| 8      | 24       | 14       | 311          | 311204        | 311204200    |
+--------+----------+----------+--------------+---------------+--------------+

Contoh 4

Anda juga dapat mengambil TZoffset dan ISO_WEEK bagian tanggal.

 TZoffset dikembalikan sebagai jumlah menit (ditandatangani). ISO_WEEK datepart mengacu pada sistem tanggal minggu ISO (bagian dari standar ISO 8601) yang merupakan sistem penomoran untuk minggu.

DECLARE @date datetimeoffset = '2018-06-02 08:24:14.3112042 +08:00';
SELECT 
    DATEPART(TZoffset, @date) AS 'Time Zone Offset',
    DATEPART(ISO_WEEK, @date) AS 'ISO_WEEK';

Hasil:

+--------------------+------------+
| Time Zone Offset   | ISO_WEEK   |
|--------------------+------------|
| 480                | 22         |
+--------------------+------------+

Dalam contoh ini, saya menyetel tanggal ke datetimeoffset format, yang mencakup offset zona waktu. TZoffset dikembalikan dalam hitungan menit.

Alternatif Cepat

T-SQL juga menawarkan cara yang lebih ringkas untuk mengembalikan komponen hari, bulan, atau tahun dari tanggal dengan DAY() , MONTH() dan YEAR() fungsi.

Mereka bekerja seperti ini:

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT 
    DAY(@date) AS DAY,
    MONTH(@date) AS MONTH,
    YEAR(@date) AS YEAR;

Hasil:

+-------+---------+--------+
| DAY   | MONTH   | YEAR   |
|-------+---------+--------|
| 2     | 6       | 2018   |
+-------+---------+--------+

Mendapatkan Nama Bulan atau Nama Hari

Jika Anda perlu mendapatkan nama bulan atau nama hari, gunakan DATENAME() fungsi sebagai gantinya. Fungsi ini mengembalikan hasil sebagai string karakter, dan Anda dapat mengembalikan bulan dan hari kerja dengan nama. Berikut ini beberapa DATENAME() contoh untuk menunjukkan apa yang saya maksud.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pyodbc tidak dapat terhubung ke database

  2. Jenis variabel tak terduga yang dikembalikan oleh Receive-Job

  3. Cara Mengirim Hasil Kueri Email sebagai Lampiran di SQL Server (T-SQL)

  4. cara menetapkan nilai cte ke variabel

  5. Menangkap hitungan dari kueri SQL