2013-02-28 92 views
7

Tôi đang cố gắng để có được ngày đầu tiên của tháng trước như 01/01/2013, tôi cũng muốn có được ngày cuối cùng của tháng trước như 01/31/2013. Nếu chúng ta tháng ba sau đó tôi muốn làm điều tương tự như 2013/02/01 và 2013/02/28 và vân vân .... nhờcách lấy ngày đầu tiên và ngày cuối cùng của tháng trước bằng cách sử dụng sql

+0

có một cái nhìn tại này [SQL Trước Ngày cuối cùng của tháng] (http://sqltutorials.blogspot.de/2007/06/sql-first-and-last-day-of-month.html) – Belial09

+0

cũng thế này: http://blog.sqlauthority.com/2007/08/18/sql-server-find-last-day-of-bất kỳ-tháng-hiện-trước-sau/ –

Trả lời

26

này nên làm điều đó:

--First day of last month 
SELECT DATEADD(m,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()), 0)) 
--Last day of last month 
SELECT DATEADD(d,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0)) 
0

đây là giải pháp của tôi

DECLARE @Today DATETIME 
SELECT @Today = GETDATE() 

    update Test.dbo.DateTable 
    set StartDate = (
SELECT convert (varchar, DATEADD(dd,-(DAY(DATEADD(mm,1,@Today))-1),DATEADD(mm,-1,@Today)),101)) 

update Test.dbo.DateTable 
set EndDate = (
SELECT convert(varchar, DATEADD(dd, -DAY(DATEADD(m,1,@Today)), DATEADD(m,0,@Today)),101)) 
0

ngày đầu tiên của tháng cuối

convert (date,DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0)) 
.210

cuối ngày của tháng trước

convert (date,DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE())-1, -1))) 
-1

Các truy vấn sau đây làm việc để tìm ra ngày cuối cùng của tháng trước trong MySQL cũ của tôi:

SELECT DATE_SUB(CURDATE(),INTERVAL Extract(DAY from now()) DAY); 
+1

câu hỏi được gắn thẻ "SQL Server" –

Các vấn đề liên quan