Làm cách nào để chuyển đổi ngày [1-31] và tháng [1-12] và một năm (tất cả int) thành ngày nối tiếp IN SQL (không chuyển đổi thành varchar)?Ngày nối tiếp trong SQL?
Trả lời
Zero là 1 tháng 1 năm 1900 trong SQL, vì vậy bạn có thể sử dụng này:
DATEADD(day, @dayval-1,
DATEADD(month, @monthval-1,
DATEADD(year, @yearval-1900, 0)
)
)
Chỉnh sửa, tháng 2 năm 2018
Như câu trả lời khác nói, kể từ khi SQL Server 2012 (phát hành sau khi câu trả lời ban đầu) chúng ta có thể sử dụng DATEFROMPARTS
SELECT DATEFROMPARTS (@yearval, @monthval, @dayval)
Tuyệt vời - Cảm ơn! –
+1 cho sự sang trọng. cảm ơn bạn! – RubyTuesdayDONO
Nhận xét ở đây để giúp những người khác trong tương lai khi tôi gặp sự cố khi điều chỉnh các chuỗi ngày tháng và câu trả lời này đã giúp tôi tìm ra. Ngày nối tiếp trong SQL khác với Excel trong 1 ngày! –
Một vài chức năng đã được thêm vào trong SQL server 2012 mà sẽ cho phép bạn làm điều này với DATEFROMPARTS, DATETIMEFROMPARTS và TIMEFROMPARTS trong số những người khác.
Ví dụ:
SELECT DATEFROMPARTS(2018,2,1) -- returns 2018-02-01
- 1. giao tiếp nối tiếp php trong linux
- 2. Nối tiếp java.util.Date
- 3. Giao tiếp cổng nối tiếp: đấu nối cổng nối tiếp vs sử dụng cổng nối tiếp DataReceived event
- 4. Nối tiếp XML trong C#
- 5. Nối tiếp Json trong C#
- 6. Nhận ngày tiếp theo từ ngày trong tuần trong JavaScript
- 7. Định dạng ngày ASP.NET Web API trong JSON không nối tiếp thành công
- 8. Trình nghe và nối tiếp cổng nối tiếp Linux?
- 9. Đặt ngày biến trong SQL
- 10. Whats cách tốt nhất để tìm ngày "tiếp theo nhưng mới nhất" trong SQL?
- 11. Ngắt nối tiếp Arduino
- 12. Nối tiếp sự kiện
- 13. Nối tiếp XML chậm
- 14. Kết nối Cổng Nối tiếp (RS -232) trong C++
- 15. InvalidOperationException khi nối tiếp
- 16. Nối tiếp WITHOUT xmlns
- 17. Giao tiếp nối tiếp Java trên Windows
- 18. Nối tiếp lớp tĩnh bên trong
- 19. Đọc cổng nối tiếp trong Java
- 20. Nối tiếp tăng tiếp trực tiếp vào mảng char
- 21. Thế hệ nối tiếp với PHP
- 22. USB đến Cổng nối tiếp
- 23. Nối tiếp và phiên bản
- 24. Mô phỏng cổng nối tiếp
- 25. Trình bày cây nối tiếp
- 26. Nối tiếp một HashTable, Java
- 27. Làm thế nào để chuyển đổi một số ngày tháng nối tiếp Excel sang .NET DateTime?
- 28. MAX (NGÀY) - SQL ORACLE
- 29. Phương pháp nối tiếp Java
- 30. Nối tiếp so với SPI
Bằng mà không chuyển đổi để varchar, bạn có nghĩa là xây dựng một ngày theo tiêu chuẩn ISO 'yyyy-mm-dd' bị loại trừ? – pascal
Tôi biết về ngày ISO. Nhưng nó thực sự làm việc? Trên MS-SQL 2005? Và trong tất cả các kết hợp có thể có của các ngôn ngữ/văn hóa (hệ điều hành, người dùng, người dùng cơ sở dữ liệu, người dùng IIS). Vâng, tôi biết nó là một tiêu chuẩn, nhưng tôi phải nói rằng tôi thực sự không có nhiều niềm tin vào cái gọi là tiêu chuẩn nữa. Bên cạnh đó, nó nhanh hơn mà không có varchar. –
Ý của bạn là gì theo "ngày nối tiếp"? – onedaywhen