UDF: Μετατροπή τιμής Ημ/νίας - ώρας σε ένα δευτερόλεπτο πριν τα μεσάνυχτα
Η UDF αυτή δέχεται μια οποιαδήποτε ημ/νία (datetime) και την επιστρέφει ως ημ/νία-ώρα που βρίσκεται ένα δευτερόλεπτο πριν τα μεσάνυχτα.
CREATE FUNCTION [dbo].[getOneSecondToMidnightDate] (@dtStart datetime)
RETURNS datetime AS
BEGIN
declare
@dtresult datetime
declare @dtstartmin int
declare
@dtstartsec int
declare
@dtstarthour int
declare
@dtstartmil int
select
@dtstartmin = -datepart(minute, @dtstart)
select
@dtstartsec = -datepart(second, @dtstart)
select
@dtstarthour = -datepart(hour, @dtstart)
select
@dtstartmil = -datepart(millisecond, @dtstart)
select
@dtresult = dateadd(hour, @dtstarthour, dateadd(minute, @dtstartmin, dateadd(second, @dtstartsec, dateadd(millisecond, @dtstartmil, @dtstart))))
select
@dtresult =dateadd(day, 1, dateadd(second, -1, @dtresult))
return
@dtresult
END