?
Solved

How to call this function

Posted on 2013-01-22
7
Medium Priority
?
385 Views
Last Modified: 2013-01-22
I want to calculate 72 hours elapsed time but exclude the weekends. I found this function

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=61519&SearchTerms=F_TABLE_DATE.

I can call it directly like this:
 SELECT * FROM   F_TABLE_DATE('2012-12-07 10:55:25.220', GETDATE()) d
    WHERE
  d.[DAY_OF_WEEK] BETWEEN 2 AND 6

Open in new window


But not sure how to call it. This is my sql but doesnt work

SELECT *
 FROM dbo.NonMemberProvider
 WHERE officecalled IS NULL
 AND DATEDIFF(hour, UPDATEDate, GETDATE()) > 72	
 AND  ( SELECT * FROM F_TABLE_DATE(UPDATEDate, GETDATE()) 
        WHERE
  d.[DAY_OF_WEEK] BETWEEN 2 AND 6 )

Open in new window

0
Comment
Question by:Camillia
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
7 Comments
 
LVL 33

Accepted Solution

by:
knightEknight earned 2000 total points
ID: 38807422
-- here's something to try along the same line of thinking:

SELECT *
 FROM dbo.NonMemberProvider
 WHERE officecalled IS NULL
 AND DATEDIFF(hour, UPDATEDate, GETDATE()) > 72      
 AND  DATEPART( WEEKDAY, UPDATEDate ) between 2 and 6
0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 38807424
it think you want to "CROSS APPLY" that table function:
SELECT t.*
 FROM dbo.NonMemberProvider t
  CROSS APPLY F_TABLE_DATE(t.UPDATEDate, GETDATE())  f
 WHERE t.officecalled IS NULL
 AND DATEDIFF(hour, t.UPDATEDate, GETDATE()) > 72	
 AND f.[DAY_OF_WEEK] BETWEEN 2 AND 6  

Open in new window

0
 
LVL 7

Author Comment

by:Camillia
ID: 38807468
Seems like knight is correct. Cross Apply one gives me repeated rows.
Anyway to exclude holidays?
0
Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

 
LVL 33

Expert Comment

by:knightEknight
ID: 38807517
Not unless you have a specific holiday or set of holidays in mind.  Certain holidays fall on different dates each year (for example, first Monday of the month), whereas others are always on the same day, in which case:

SELECT *
 FROM dbo.NonMemberProvider
 WHERE officecalled IS NULL
 AND DATEDIFF(hour, UPDATEDate, GETDATE()) > 72      
 AND  DATEPART( WEEKDAY, UPDATEDate ) between 2 and 6
AND NOT ( DATEPART(month,UPDATEDate)=12 and DATEPART(day,UPDATEDate)=25 )  -- excludes December 25
0
 
LVL 7

Author Comment

by:Camillia
ID: 38807539
Should I create a Holiday table and join to that?
0
 
LVL 33

Expert Comment

by:knightEknight
ID: 38807556
Yes, that could work... then you could excludes dates in that table:

SELECT *
 FROM dbo.NonMemberProvider T
 WHERE officecalled IS NULL
 AND DATEDIFF(hour, UPDATEDate, GETDATE()) > 72      
 AND  DATEPART( WEEKDAY, UPDATEDate ) between 2 and 6
 and UPDATEDate not in ( select holdate from HolidayTable )
0
 
LVL 33

Expert Comment

by:knightEknight
ID: 38807562
actually, my last post assumes UPDATEDate is a date type(as opposed to a datetime).  If it is a datetime then you could cast it like this, but doing this will slow down your query considerably:

and cast(UPDATEDate as DATE) not in ( select holdate from HolidayTable )
0

Featured Post

Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Long way back, we had to take help from third party tools in order to encrypt and decrypt data.  Gradually Microsoft understood the need for this feature and started to implement it by building functionality into SQL Server. Finally, with SQL 2008, …
Use this article to create a batch file to backup a Microsoft SQL Server database to a Windows folder.  The folder can be on the local hard drive or on a network share.  This batch file will query the SQL server to get the current date & time and wi…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…

719 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question