Let say you have to write a code for the periodic payment application, and in your database you store the payment start date. After that you want to check if the next payment is within +/- 1 day of the current date - do something. And obviously, you font want to write a lot of code to do that :)
The first idea I had was to create a whole bunch of unions for each day and then check if current date is one of those, but later I shrinked that to 3 conditions connected with 'or' (here is NHibernate function for that)
I am not sure about 'or' conjunction tho... would it cause performance problems?
The first idea I had was to create a whole bunch of unions for each day and then check if current date is one of those, but later I shrinked that to 3 conditions connected with 'or' (here is NHibernate function for that)
var settlementDateDifferenceFromNow = Projections.SqlFunction( new SQLFunctionTemplate( NHibernateUtil.Int32, @" CASE WHEN ABS(DATEDIFF(DAY, GETDATE(), DATEADD(MONTH, DATEDIFF(MONTH, ?1, GETDATE()) - 1, ?1))) <= 1 OR ABS(DATEDIFF(DAY, GETDATE(), DATEADD(MONTH, DATEDIFF(MONTH, ?1, GETDATE()), ?1))) <= 1 OR ABS(DATEDIFF(DAY, GETDATE(), DATEADD(MONTH, DATEDIFF(MONTH, ?1, GETDATE()) + 1, ?1))) <= 1 THEN 1 ELSE 0 END "), NHibernateUtil.Int32, Projections.Property<Contract>(x => x.SettlementDate_Actual) );
I am not sure about 'or' conjunction tho... would it cause performance problems?
No comments:
Post a Comment