Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

DATEPART () Ví dụ trong SQL Server

Trong SQL Server, T-SQL DATEPART() hàm trả về một số nguyên đại diện cho ngày tháng được chỉ định của ngày được chỉ định . Ví dụ:bạn có thể chuyển vào 2021-01-07 và có SQL Server chỉ trả về phần năm (2021 ).

Bạn cũng có thể trích xuất phần thời gian. Ví dụ:bạn có thể chuyển vào 2018-06-02 08:24:14.3112042 và yêu cầu SQL Server chỉ trả lại phần giờ (8 ).

Ví dụ bên dưới.

Cú pháp

Đầu tiên, cú pháp. DATEPART() cú pháp như sau:

DATEPART ( datepart , date )

Nơi datepart là một phần của date (giá trị ngày hoặc giờ) mà một số nguyên sẽ được trả về.

Ví dụ 1

Đây là một ví dụ cơ bản mà tôi trả về thành phần năm từ một ngày.

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

Kết quả:

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

Ví dụ 2

Trong ví dụ này, tôi chỉ định ngày cho một biến, sau đó tôi sử dụng nhiều phiên bản của DATEPART() để truy xuất các phần khác nhau của ngày đó.

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;

Kết quả:

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

Ví dụ 3

Bạn cũng có thể truy xuất các phần thời gian khác nhau từ ngày.

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;

Kết quả:

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

Ví dụ 4

Bạn cũng có thể truy xuất TZoffsetISO_WEEK datepart.

TZoffset được trả về dưới dạng số phút (đã ký). ISO_WEEK datepart đề cập đến hệ thống ngày theo tuần ISO (một phần của tiêu chuẩn ISO 8601) là hệ thống đánh số cho các tuần.

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';

Kết quả:

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

Trong ví dụ này, tôi đặt ngày thành datetimeoffset định dạng, bao gồm chênh lệch múi giờ. TZoffset được trả lại sau vài phút.

Một giải pháp thay thế nhanh chóng

T-SQL cũng cung cấp một cách ngắn gọn hơn để trả về các thành phần ngày, tháng hoặc năm từ một ngày với DAY() , MONTH()YEAR() các chức năng.

Chúng hoạt động như thế này:

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

Kết quả:

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

Lấy tên tháng hoặc tên ngày

Nếu bạn cần lấy tên tháng hoặc tên ngày, hãy sử dụng DATENAME() chức năng thay thế. Hàm này trả về kết quả dưới dạng một chuỗi ký tự và bạn có thể trả về tháng và ngày trong tuần theo tên. Đây là một số DATENAME() ví dụ để chứng minh ý tôi muốn nói.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lợi ích của việc sử dụng ký hiệu vị trí thứ tự trong SQL?

  2. Máy ảo Azure để sử dụng máy chủ SQL

  3. Sử dụng OBJECTPROPERTY () để xác định xem một đối tượng có phải là dạng xem trong SQL Server hay không

  4. Chuyển đổi ngày và văn hóa:Sự khác biệt giữa DATE và DATETIME

  5. Định danh duy nhất (hướng dẫn) làm khóa chính trong thiết kế cơ sở dữ liệu