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

Chỉ nhận Tháng và Năm từ SQL DATE

Cũng như các gợi ý đã đưa ra, có một khả năng khác mà tôi có thể suy ra từ câu hỏi của bạn:
- Bạn vẫn muốn kết quả là một ngày
- Nhưng bạn muốn 'loại bỏ' Ngày, Giờ , v.v.
- Chỉ để lại trường ngày tháng năm

SELECT
   DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field]
FROM
   <your_table>

Điều này lấy số nguyên tháng tính từ ngày gốc (0) và sau đó thêm chúng vào ngày gốc đó. Như vậy làm tròn xuống tháng có ngày đó.

LƯU Ý:Trong SQL Server 2008, Bạn vẫn sẽ có TIME đính kèm là 00:00:00.000, Điều này không hoàn toàn giống với việc "loại bỏ" hoàn toàn bất kỳ ký hiệu ngày và giờ nào. DAY cũng được đặt thành đầu tiên. ví dụ. 2009-10-01 00:00:00.000



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn SQL để tìm ngày cuối cùng của tháng

  2. Không thể mở cơ sở dữ liệu vì nó là phiên bản 782. Máy chủ này hỗ trợ phiên bản 706 trở về trước. Đường dẫn hạ cấp không được hỗ trợ

  3. Sử dụng varchar (MAX) so với TEXT trên SQL Server

  4. Cách CHỌN * nhưng không có Tên cột phải là duy nhất trong mỗi dạng xem

  5. Viết CTE đệ quy bằng cách sử dụng Entity Framework Cú pháp thông thạo hoặc cú pháp nội tuyến