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

Chuyển đổi ngày giờ trong máy chủ sql

Để có được "25-10-2010"

Giả sử giá trị được cung cấp dưới dạng chuỗi, không phải kiểu dữ liệu DATETIME:

SELECT REPLACE(CONVERT(VARCHAR, CAST('2010-10-25 11:13:36.700' AS DATETIME), 106), ' ', '-')

Xem tài liệu CAST / CONVERT cho các định dạng khác, mặc dù định dạng bạn yêu cầu yêu cầu xử lý sau.

Để tải "2010-10-25 00:00:00.000"

Phương tiện hoạt động tốt nhất là sử dụng DATEADD &DATEDIFF:

SELECT DATEADD(d, DATEDIFF(dd, 0, '2010-10-25 11:13:36.700'), 0)

Tài liệu tham khảo:

Thử nghiệm

WITH sample AS (
   SELECT CAST('2010-10-25 11:13:36.700' AS DATETIME) dt)
SELECT REPLACE(CONVERT(VARCHAR, s.dt, 106), ' ', '-') AS col1,
       DATEADD(d, DATEDIFF(dd, 0, s.dt), 0) AS col2
  FROM sample s

Lợi nhuận:

col1          col2
-------------------------------------
25-Oct-2010   2010-10-25 00:00:00.000

Phụ lục

Vì bạn đang sử dụng SQL Server 2005, bạn có thể làm cho việc định dạng ngày tháng trở nên dễ dàng hơn bằng cách tạo một hàm SQLCLR cho phép bạn sử dụng định dạng ngày .NET.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 cách để lấy danh sách lịch biểu trong SQL Server Agent (T-SQL)

  2. Thay thế nhiều ký tự từ chuỗi mà không sử dụng bất kỳ hàm thay thế lồng nhau nào

  3. Bảo quản ORDER BY trong CHỌN VÀO

  4. Hàm SQL Server để lấy cấp cao nhất của cấp cha mẹ trong hệ thống phân cấp

  5. Ghi lại thời gian bắt đầu và kết thúc để biết các thay đổi về trạng thái của một trường