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

Ví dụ về DATENAME () trong SQL Server

Trong SQL Server, T-SQL DATENAME() hàm trả về một chuỗi ký tự đạ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à yêu cầu SQL Server chỉ trả về phần tháng (January ).

Kiểu trả về cho DATENAME() nvarchar .

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

Cú pháp

DATENAME() cú pháp như sau:

DATENAME ( datepart , date )

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

Ví dụ 1

Dưới đây là một ví dụ cơ bản mà tôi trả về thành phần tháng từ một ngày.

SELECT DATENAME(month, '2021-01-07') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| January  |
+----------+

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 
    DATENAME(year, @date) AS Year,
    DATENAME(quarter, @date) AS Quarter,
    DATENAME(month, @date) AS Month,
    DATENAME(dayofyear, @date) AS 'Day of Year',
    DATENAME(day, @date) AS Day,
    DATENAME(week, @date) AS Week,
    DATENAME(weekday, @date) AS Weekday;

Kết quả:

+--------+-----------+---------+---------------+-------+--------+-----------+
| Year   | Quarter   | Month   | Day of Year   | Day   | Week   | Weekday   |
|--------+-----------+---------+---------------+-------+--------+-----------|
| 2018   | 2         | June    | 153           | 2     | 22     | Saturday  |
+--------+-----------+---------+---------------+-------+--------+-----------+

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 
    DATENAME(hour, @date) AS Hour,
    DATENAME(minute, @date) AS Minute,
    DATENAME(second, @date) AS Second,
    DATENAME(millisecond, @date) AS Millsecond,
    DATENAME(microsecond, @date) AS Microsecond,
    DATENAME(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 
    DATENAME(TZoffset, @date) AS 'Time Zone Offset',
    DATENAME(ISO_WEEK, @date) AS 'ISO_WEEK';

Kết quả:

+--------------------+------------+
| Time Zone Offset   | ISO_WEEK   |
|--------------------+------------|
| +08:00             | 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.

Kết quả của DATENAME() thường sẽ giống với kết quả từ DATEPART() (do phần lớn ngày là số). Tuy nhiên, DATEPART() trả về một số nguyên đối lập với một chuỗi ký tự. Do đó DATEPART() sẽ trả về các tháng (và thành phần ngày trong tuần) ở dạng số (ví dụ:1 thay vì January ).

Lấy tên tháng ngắn

Nếu bạn cần tên tháng, nhưng ở dạng rút gọn, 3 chữ cái viết tắt của nó (ví dụ:Jan thay vì January ), hãy xem bài viết của tôi 5 Cách để Lấy Tên Tháng Ngắn từ Ngày trong SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiến trúc SQL Server AlwaysOn (Nhóm khả dụng) và Cài đặt từng bước -3 Thất bại thủ công qua các bước

  2. Các tính năng ẩn của SQL Server

  3. ACOS () Ví dụ trong SQL Server

  4. Bộ lọc SQL tiêu chí trong tiêu chí nối hoặc mệnh đề where hiệu quả hơn

  5. Làm cách nào để bạn chỉ định một số cổng khác trong SQL Management Studio?