Solved

SQL date calculations?

Posted on 2001-06-08
14
160 Views
Last Modified: 2011-08-18
Hi I was wondering if I could sort a database by extracting all dates within 7 days of the present date.

I'm trying something like this:
SELECT WHEN, DOWHAT, ID FROM Source WHERE (Date - WHEN) <= 00/07/00 ORDER BY WHEN;

I was pretty sure it wouldn't work, but you can't blame a guy for trying.  =)

0
Comment
Question by:nerfgunz
  • 6
  • 3
  • 2
  • +3
14 Comments
 
LVL 1

Accepted Solution

by:
morgan_peat earned 50 total points
Comment Utility
You can do this through VB, or in the DB.

VB:
SELECT stuff FROM table WHERE date >= DateAdd("d", -7, Now)

Or through DB, which is DB specific (eg. SQL Server has a DateAdd, and a GetDate function)
0
 
LVL 3

Expert Comment

by:jrspano
Comment Utility

select field1, field2 from table1 where DATEDIFF(day, datefieldindb, getdate()) <= 7
0
 

Author Comment

by:nerfgunz
Comment Utility
Yes i am trying to do it in vb.  However both of these methods are not working for me.
0
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
Which database engine are you using? Different engines = Different syntax.
0
 

Author Comment

by:nerfgunz
Comment Utility
access 2000
0
 
LVL 5

Expert Comment

by:dgorin
Comment Utility
Try this

sql = "SELECT WHEN, DOWHAT, ID FROM Source WHERE WHEN <= #" & DateDiff("d", -7, Now()) & "# ORDER BY WHEN"

Date values in Access sql need to be delimited by the # character, most other SQL's by the ' character.



0
 

Author Comment

by:nerfgunz
Comment Utility
what is "d"?
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

by:nerfgunz
Comment Utility
dqorin, it doesnt work.
0
 

Author Comment

by:nerfgunz
Comment Utility
I'm trying this now, but it gives me ALL the data in the table.

dcOverduePending.RecordSource = "SELECT WHEN, DOWHAT, ID FROM " & Source & " WHERE DateDiff(""d"", WHEN, " & Date & ") <= 7 ORDER BY WHEN;"
0
 

Author Comment

by:nerfgunz
Comment Utility
going to start a new thread.
0
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
I just test this query against the NWind database and it is working:
Adodc1.RecordSource = "SELECT DateDiff('d', OrderDate, Date()), * " & _
                      "From Orders " & _
                      "Where DateDiff('d', OrderDate, Date()) >= 7 " & _
                      "ORDER BY OrderDate"

Your query should read:
dcOverduePending.RecordSource = "SELECT WHEN, DOWHAT, ID FROM " & Source & " WHERE DateDiff('d', WHEN, Date()) <= 7 ORDER BY WHEN"
0
 
LVL 3

Expert Comment

by:Hornet241
Comment Utility

Try this

Dim TargetDate as Date

TargetDate = Now - 7

SELECT WHEN, DOWHAT, ID FROM " & Source & " WHERE When > #" & TargetDate & "#"

0
 
LVL 5

Expert Comment

by:dgorin
Comment Utility
Sorry, should have been DateAdd, not DateDiff.  DateAdd returns a date datatype, DateDiff returns a long integer.  The "d" indicates the interval is by days.

sql = "SELECT WHEN, DOWHAT, ID FROM Source WHERE WHEN <= #" & DateAdd("d", -7, Date()) & "# ORDER BY
WHEN"



0
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
Please maintain this question.
0

Featured Post

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…

771 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now