Tôi đang cố gắng đạt được thời gian có thể cuối cùng của một ngày cụ thể, ví dụ: Ngày 2008-01-23 00: 00: 00.000 tôi sẽ cần 2008-01- 23 23: 59: 59.999 có lẽ bằng cách sử dụng hàm dateadd trên trường Date?Làm cách nào để có được thời gian có thể cuối cùng của một ngày cụ thể
Trả lời
SELECT DATEADD(ms, -2, DATEADD(dd, 1, DATEDIFF(dd, 0, GetDate())))
Tôi nghĩ bạn có C# lúc đầu .. Tôi sẽ để điều này ở đây trong trường hợp bất kỳ ai khác tình cờ gặp vấn đề này.
DateTime now = DateTime.Now;
DateTime endofDay = now.Date.AddDays(1).AddMilliseconds(-1);
Bạn có thể thay thế 'bây giờ' biến với bất cứ điều gì trong ngày bạn đang cố gắng tìm ra
Câu trả lời là SELECT DATEADD(ms, -3, '2008-01-24')
, giải thích là bên dưới.
Từ Marc's blog:
Nhưng chờ đợi, Marc ... bạn nói bạn muốn sử dụng
BETWEEN
, nhưng truy vấn mà không có một ... đó là bởi vìBETWEEN
is inclusive, có nghĩa là nó bao gồm các thúc- điểm. Nếu tôi có một Đơn hàng đến hạn vào nửa đêm của ngày đầu tiên của tháng tiếp theo, nó sẽ được bao gồm. Vậy làm thế nào để bạn có được giá trị thích hợp cho một giai đoạn cuối? Đó chắc chắn là KHÔNG bằng cách sử dụng các bộ phận ngày để lắp ráp một (nhưng bạn phải, hãy nhớ rằng đó là 23: 59: 59.997 là thời gian tối đa ... đừng quên mili giây). Để làm điều đó đúng, chúng tôi sử dụng kiến thức loạn luân rằng các cột Microsoft SQL ServerDATETIME
có tối đa độ phân giải 3 mili giây (thứ gì đó sẽ không thay đổi). Vì vậy, tất cả những gì chúng tôi làm là trừ 3 mili giây từ bất kỳ công thức cuối kỳ nào đã nêu ở trên. Ví dụ, ngay lập tức có thể cuối cùng của ngày hôm qua (giờ địa phương) là:SELECT DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd, 0, GetDate()), 0))
Vì vậy, để thực hiện đơn đặt hàng do trong tháng này như một truy vấn
BETWEEN
, bạn có thể sử dụng này:SELECT [ID] FROM [dbo].[Orders] WHERE [ShipDue] BETWEEN DATEADD(mm, DATEDIFF(mm, 0, GetUTCDate()), 0) AND DATEADD(ms, -3, DATEADD(mm, DATEDIFF(mm, 0, GetUTCDate()) + 1, 0))
Hãy nhớ rằng, luôn hãy đảm bảo rằng bạn thực hiện toán học dựa vào tham số đầu vào, các cột NOT hoặc bạn sẽ mất khả năng truy cập của SARG, có nghĩa là các chỉ mục có thể đã được sử dụng thì không.
Add -1 mili giây đến bắt đầu của ngày hôm sau (DateAdd thậm chí hỗ trợ nano giây, nếu bạn muốn để có được tốt thực).
Nhưng rất có thể bạn chỉ muốn sử dụng giá trị này trong so sánh và trong trường hợp đó, nó thậm chí còn đơn giản hơn.
Thay vì một cái gì đó như thế này:
AND @CompareDate <= [LastTimeforThatday]
hay này:
@compareDate BETWEEN [StartDate] AND [LastTimeforThatday]
Làm điều đó như thế này:
AND @CompareDate < [BeginningOfNextDay]
hay này:
AND (@CompareDate >= [StartDate] AND @CompareDate < [BeginningOfNextDay])
Như bạn nói, loại trừ điểm cuối là một cách tiếp cận rất ổn định cho những vấn đề này. Nó cũng cho phép thời lượng được tính toán mà không cần fudging. –
Tại sao lại vào nó?
SELECT DATEADD(ms, 86399997, *yourDate*)
- 1. Làm thế nào để có được ngày cuối cùng của một tháng cụ thể với JodaTime?
- 2. Làm cách nào để có được ngày đầu tiên và ngày cuối cùng của tháng với Thời gian chờ của Perl?
- 3. Làm thế nào tôi có thể đặt thời gian sửa đổi cuối cùng của một tệp từ python?
- 4. Làm thế nào tôi có thể lấy ngày của một ngày cụ thể với PHP
- 5. Làm thế nào để có được ngày cuối cùng của tháng bằng cách sử dụng php
- 6. Làm cách nào để có được thời gian hoạt động cuối cùng của người dùng khi sử dụng Devise?
- 7. Làm cách nào để có được thời gian bot Google truy cập lần cuối trang?
- 8. đếm ngược Javascript cho thời gian và ngày cụ thể
- 9. Làm cách nào để có được một ngày có thể đọc được của con người từ dấu thời gian unix trong Javascript?
- 10. xpath có được cuối cùng của anh chị em trước cụ thể
- 11. Trong PHP, có cách nào dễ dàng để có được ngày đầu tiên và cuối cùng của một tháng không?
- 12. PHP: Làm thế nào để có được chủ nhật trước đó của một ngày cụ thể trong quá khứ ..?
- 13. Làm cách nào để tạo một xác nhận thời gian biên dịch cho một mẫu có các loại cụ thể?
- 14. Làm thế nào để có được ngày và thời gian của khách hàng trong ASP.NET?
- 15. C#: Làm thế nào tôi có thể nhận được thời gian hiện tại thành một chuỗi?
- 16. Làm cách nào để có được 7 ký tự cuối cùng của một chuỗi PHP?
- 17. Tăng thời gian ngày có thể đọc được của con người bây giờ
- 18. làm cách nào tôi có thể nhận id cuối cùng được chèn vào trong formview
- 19. Tôi làm cách nào để “tách rời” một ngày trong một múi giờ cụ thể?
- 20. Biến cuối cùng có thể được khởi tạo khi một đối tượng được tạo không?
- 21. Cách tốt nhất để có được ngày đầu tiên và cuối cùng của tháng trước?
- 22. Làm thế nào để có được ngày trong tuần từ một dấu thời gian Unix (PHP)?
- 23. Làm cách nào để hiển thị bánh mì nướng trong một khoảng thời gian cụ thể?
- 24. Cách tạo tệp .ics bằng PHP cho một phạm vi ngày và thời gian cụ thể
- 25. Làm cách nào để tìm ngày đầu tiên của tuần mà một ngày cụ thể thuộc về?
- 26. Làm cách nào để có được thời gian trong ngày trong javascript/Node.js?
- 27. StringBuilder: làm thế nào để có được chuỗi cuối cùng?
- 28. Làm cách nào để tạo gtk.TreeViewColumn cuối cùng có thể định lại?
- 29. Làm cách nào để đặt window.location thành một đường dẫn cụ thể (không có máy chủ)?
- 30. Bạn có thể có thời gian không có ngày trong đường ray không?
kiểm tra thẻ - anh muốn làm điều đó trong TSQL – Danimal
câu trả lời tốt nhất IMO –