2012-05-11 43 views
6

Tôi đang phát xung quanh với thao tác biến số datetime. Tôi dường như không thể tìm cách cập nhật năm biến đổi datetime cho năm hiện tại.Cập nhật năm trong biến datetime

Ví dụ tôi có

2007-12-01 00:00:00.000 

Nhưng tôi muốn rằng để trở thành

2012-12-01 00:00:00.000 (The current year were in) 

Tôi đã chơi với datediff, nhưng tôi dường như không thể để móng tay nó.

Mọi lời khuyên sẽ được đánh giá cao.

Cảm ơn

Trả lời

8
DECLARE @date datetime = '2007-01-09T12:34:56' 
SELECT @date = DATEADD(yyyy, DATEDIFF(yyyy, @date, GETDATE()), @date) 

SELECT @date 
+0

Cảm ơn bạn AdaTheDev. Tại chỗ trên. – JGreasley

1

Có lẽ một cái gì đó như thế này:

Đối với SQL Server 2008+

DECLARE @date DATETIME='2007-12-01 00:00:00.000' 
SET @date=DATEADD(year,DATEDIFF(year,@date,GETDATE()),@date) 

Đối với máy chủ sql 2005

DECLARE @date DATETIME 
SET @date='2007-12-01 00:00:00.000' 
SET @date=DATEADD(year,DATEDIFF(year,@date,GETDATE()),@date) 
+0

Cảm ơn bạn Arion, hoạt động tốt. – JGreasley

0

Đây là một cách đơn giản:

select @yourDate = dateadd(year, datepart(year, getdate()) - datepart(year, @yourDate), @yourDate) 
Các vấn đề liên quan