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

Làm cách nào để chỉ định ngày tháng khi viết truy vấn SQL từ SQL Server được liên kết với Oracle?

Tôi thích định dạng ODBC hơn:

--DateTime
SELECT {ts'2015-09-20 12:30:00'}
--Time (however this comes with "today"-time)
SELECT {t'12:30:00'}
--Date
SELECT {d'2015-09-20'}
GO

Chữ ngày tháng đơn giản không độc lập với văn hóa ...

SET LANGUAGE ENGLISH;
SELECT CAST('2014-09-13' AS DATETIME);
GO
SET LANGUAGE GERMAN;
SELECT CAST('2014-09-13' AS DATETIME);--ERROR: there's no month "13"
GO

Nhưng nó hoạt động - tuy nhiên - với loại đích DATE (sự khác biệt này khá kỳ lạ ...):

SET LANGUAGE ENGLISH;
SELECT CAST('2014-09-13' AS DATE);
GO
SET LANGUAGE GERMAN;
SELECT CAST('2014-09-13' AS DATE);--ERROR: there's no month "13"
GO

Tôi muốn bổ sung cho đầy đủ ISO 8601 "đầy đủ", hoạt động tốt:

SET LANGUAGE ENGLISH;
SELECT CAST('2014-09-13T12:30:00' AS DATETIME);
GO
SET LANGUAGE GERMAN;
SELECT CAST('2014-09-13T12:30:00' AS DATETIME);
GO


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SYSUTCDATETIME () Ví dụ trong SQL Server (T-SQL)

  2. Lỗi CTE:Các loại không khớp giữa phần neo và phần đệ quy

  3. Nối các giá trị cột vào một danh sách được phân tách bằng dấu phẩy

  4. Cách thực thi truy vấn SQL mà không hiển thị kết quả

  5. Giới thiệu tính năng mới - Spotlight Cloud Replication