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

DAY () Ví dụ trong SQL Server (T-SQL)

Trong SQL Server, bạn có thể sử dụng DAY() hàm để trả về phần “ngày” của ngày tháng. Hàm này trả về một số nguyên đại diện cho ngày trong tháng (không phải ngày trong tuần).

Dưới đây là các ví dụ về cách sử dụng chức năng này.

Cú pháp

Cú pháp như sau:

DAY ( date )

Nơi date là một biểu thức phân giải thành một trong các kiểu dữ liệu sau:

  • ngày
  • ngày giờ
  • bộ datetimeoffs
  • datetime2
  • smalldatetime
  • thời gian

Đây có thể là một biểu thức cột, biểu thức, chuỗi ký tự hoặc biến do người dùng xác định.

Ví dụ

Dưới đây là một ví dụ cơ bản về cách nó hoạt động:

SELECT 
   SYSDATETIME() AS 'Date',
   DAY(SYSDATETIME()) AS 'Day';

Kết quả:

+-----------------------------+-------+
| Date                        | Day   |
|-----------------------------+-------|
| 2018-06-18 00:20:22.1284540 | 18    |
+-----------------------------+-------+

Vì vậy, DAY() hàm có thể trích xuất ngày từ datetime2 giá trị (được trả về bởi SYSDATETIME() chức năng).

Ngày được cung cấp dưới dạng văn bản chuỗi

Dưới đây là một ví dụ trong đó ngày được cung cấp dưới dạng chuỗi ký tự.

SELECT DAY('2019-01-07') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 7        |
+----------+

Và đây là một ví dụ trong đó ngày được cung cấp ở một định dạng khác:

SELECT DAY('07/01/2017') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Tuy nhiên, tốt nhất là bạn nên tránh sử dụng ngày ở các định dạng như vậy. Nếu phải làm như vậy, bạn cần lưu ý đến cài đặt ngôn ngữ và / hoặc cài đặt định dạng ngày của phiên hiện tại.

Cài đặt ngôn ngữ

Kết quả của ví dụ trước sẽ phụ thuộc vào cài đặt ngôn ngữ và / hoặc cài đặt định dạng ngày của phiên hiện tại.

Khi chúng tôi đặt ngôn ngữ, định dạng ngày tháng được đặt ngầm định cùng một lúc.

Đây là những gì sẽ xảy ra khi chúng tôi cung cấp cùng một đối số ngày tháng trong hai môi trường ngôn ngữ khác nhau.

Anh

SET LANGUAGE British;
SELECT DAY('07/01/2017') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 7        |
+----------+

us_English

SET LANGUAGE us_English;
SELECT DAY('07/01/2017') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Cài đặt định dạng ngày

Cài đặt định dạng ngày có thể ghi đè cài đặt ngôn ngữ, vì vậy bạn cũng cần lưu ý về cài đặt này. Ví dụ:chúng tôi có thể đang sử dụng us_English cho ngôn ngữ của chúng tôi (có định dạng ngày mặc định là mdy ), nhưng chúng tôi có thể ghi đè định dạng ngày thành dmy .

Đây là một ví dụ:

us_English - Định dạng ngày mặc định

Tại đây, chúng tôi đặt ngôn ngữ thành us_English , điều này hoàn toàn đặt định dạng ngày thành myy .

SET LANGUAGE us_English;
SELECT DAY('07/01/2017') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 1        |
+----------+

us_English - Ghi đè định dạng ngày

Tại đây, chúng tôi đặt ngôn ngữ thành us_English (đặt định dạng ngày một cách hoàn toàn), nhưng sau đó chúng tôi đặt định dạng ngày một cách rõ ràng thành dmy . Điều này ghi đè định dạng ngày đã được đặt ngầm khi chúng tôi đặt ngôn ngữ.

SET LANGUAGE us_English;
SET DATEFORMAT dmy;
SELECT DAY('07/01/2017') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 7        |
+----------+

Trả lại tên ngày

Nếu bạn cần trả lại tên ngày (thay vì số ngày), hãy xem 3 cách để lấy tên ngày từ mộ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. Cách hàm CHAR () hoạt động trong SQL Server (T-SQL)

  2. Cách lấy danh sách các ràng buộc kiểm tra được bật / tắt trong cơ sở dữ liệu SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 86

  3. Sự khác biệt giữa CTE và SubQuery?

  4. Nhật ký giao dịch SQL Server - Phần 1

  5. SQL Cách cập nhật SUM của cột qua nhóm trong cùng một bảng