Được gửi bởi
chip07
nghịch tí ^^
Code:
DECLARE @bod DATE
DECLARE @n DATE
SELECT @bod = '19840229'
SELECT @n = '20130228'
SELECT @bod
SELECT @bod = DATEADD(DD, 1, @bod)
SELECT @bod
SELECT @bod = DATEADD(YYYY, DATEDIFF(YYYY, @bod, @n), @bod)
SELECT @bod
SELECT @bod = DATEADD(DD, -1, @bod)
SELECT @bod
IF DATEPART(DD, @bod) = DATEPART(DD, @n) AND DATEPART(MM, @bod) = DATEPART(MM, @n)
SELECT 'Happy birth day to you'
ELSE
SELECT 'Good day'
Con tính chỉ cần viết 1 dòng thôi cô/cậu ạ
Code:
USE [TestDataBase]
GO
/****** Object: UserDefinedFunction [dbo].[TestSinhNhat] Script Date: 07/08/2013 09:59:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: Hàm tính ngày sinh nhật
-- Nếu là ngày sinh nhật thì trả về 1, nếu không thì 0
-- =============================================
CREATE FUNCTION [dbo].[TestSinhNhat]
(
@NgaySinh AS DateTime, -- ngày sinh
@NgayHN AS DateTime = NULL -- ngày cần tính, nếu là hôm nay thì ghi là default
)
RETURNS Int
AS
BEGIN
RETURN CASE
DATEDIFF(day,DATEADD(year,DATEDIFF(year,@NgaySinh,COALESCE(@NgayHN,GETDATE())),@NgaySinh),
COALESCE(@NgayHN, GETDATE())) WHEN 0 THEN 1 ELSE 0 END
END
Gọi hàm: Kết Quả
Select dbo.testSinhNhat('20000229', '20100228') 1
Select dbo.testSinhNhat('20001015', default) 0
Select dbo.testSinhNhat('20000708', default) 1
Bookmarks