Tôi cần phải tìm ngày cuối cùng của một tháng theo định dạng sau:SQL Query để tìm ngày cuối cùng của tháng
"2013-05-31 00:00:00:000"
Bất kỳ ai xin vui lòng giúp đỡ.
Tôi cần phải tìm ngày cuối cùng của một tháng theo định dạng sau:SQL Query để tìm ngày cuối cùng của tháng
"2013-05-31 00:00:00:000"
Bất kỳ ai xin vui lòng giúp đỡ.
Hãy thử này -
CREATE FUNCTION [dbo].[udf_GetLastDayOfMonth]
(
@Date DATETIME
)
RETURNS DATETIME
AS
BEGIN
RETURN DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @Date) + 1, 0))
END
Query:
DECLARE @date DATETIME
SELECT @date = '2013-05-31 15:04:10.027'
SELECT DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @date) + 1, 0))
Output:
-----------------------
2013-05-31 00:00:00.000
Chỉ cần nhớ rằng nếu bạn đang sử dụng điều này trong một tuyên bố giữa để có được (ví dụ) tất cả hồ sơ cho một tháng, điều này sẽ loại trừ các bản ghi từ ngày cuối cùng. Bạn có thể cần phải sử dụng ngày đầu tiên của tháng tiếp theo để thay thế. – SteveCav
declare @date datetime;
set @date = getdate(); -- or some date
select dateadd(month,1+datediff(month,0,@date),-1);
Tôi biết điều này câu hỏi đã được cho SQL Server 2005, nhưng tôi nghĩ rằng tôi muốn đề cập đến - như của SQL 2012, bây giờ có một chức năng EOMONTH()
được ngày cuối cùng của tháng. Để có được nó ở định dạng được chỉ định bởi người yêu cầu ban đầu, bạn sẽ phải truyền đến một số datetime
.
SELECT CAST(eomonth(GETDATE()) AS datetime)
http://php.net/manual/en/function.cal-days-in-month.php
Chiều dài trong những ngày của tháng được chọn trong lịch cho
<?php
$num = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "There was $num days in August 2003";
?>
Đó thực sự không phải là câu hỏi được đặt ra, cũng như không ai đề cập đến bất cứ điều gì về việc sử dụng PHP. – Matt
dateadd(month,1+datediff(month,0,getdate()),-1)
Để kiểm tra chạy:
print dateadd(month,1+datediff(month,0,@date),-1)
Tính ngày cuối cùng của tháng là khá đơn giản tính -
Output - 1374, Nếu getdate() đầu ra là "2014/07/23 19: 33: 46,850"
Output - 1375, Nếu getdate() đầu ra là "2014/07/23 19: 33: 46,850"
Output - '2014-08-01 00: 00: 00.000, Nếu getdate() đầu ra là "2014/07/23 19: 33: 46,850"
Đầu ra - '2014-07-31 00:00:00.000 ', Nếu đầu ra getdate() là "2014-07-23 19: 33: 46.850"
Trong cùng cách tính chúng ta có thể đạt được - 1. Ngày cuối cùng của tháng tiếp theo 2. Ngày cuối cùng của tháng trước và cứ thế ...
Tôi hy vọng bài viết này sẽ hữu ích.
SQL Server 2012 giới thiệu the eomonth
function:
select eomonth('2013-05-31 00:00:00:000')
-->
2013-05-31
Chọn DATEADD (NGÀY, - (DAY (DATEADD (MONTH, 1, getdate()))), DATEADD (MONTH, 1, getdate()))
Điều này hoạt động tốt trong T-sql ..
Thay thế GETDATE() truy vấn bằng tên cột của bạn.
TO FIND 1ST and Last day of the Previous, Current and Next Month in Oracle SQL
-----------------------------------------------------------------------------
SELECT
SYSDATE,
LAST_DAY(ADD_MONTHS(SYSDATE,-2))+1 FDPM,
LAST_DAY(ADD_MONTHS(SYSDATE,-1)) LDPM,
LAST_DAY(ADD_MONTHS(SYSDATE,-1))+1 FDCM,
LAST_DAY(SYSDATE)LDCM,
LAST_DAY(SYSDATE)+1 FDNM,
LAST_DAY(LAST_DAY(SYSDATE)+1) LDNM
FROM DUAL
Wecome để StackOverflow! Vui lòng xem xét thêm một số giải thích cho mã của bạn. Cảm ơn bạn. – Aurasphere
có thể trùng lặp của [Nhận ngày cuối cùng của tháng trong SQL] (http://stackoverflow.com/questions/1051488/get-the-last-day-of-the-month-in-sql) – Pondlife
tham khảo https://codepedia.info/eomonth-last-date-month-in-sql-server/ –