Solved

How do I return records from a date range with SQL syntax?

Posted on 2007-12-04
6
518 Views
Last Modified: 2010-05-18
I have an SQL table of records from 2006-2007 and I want to select a range of records based upon start and stop dates entered into text boxes.

I'm using Visual Web Developer; SQL Express; Express Management Studio; VB backcoding

Here's my statement:

SELECT [ID], [BILLNUMBER], [CHARGEDATE], [LNAME], [FNAME] FROM [TABLETracking] WHERE (([CHARGEDATE] IS NOT NULL) AND ([CHARGEDATE] >= @CHARGEDATE) AND ([CHARGEDATE] <= @CHARGEDATE2) AND ([7CAT] = @7CAT))


So, the @CHARGEDATE and @CHARGEDATE2 values are coming from textbox dates that are entered. @7CAT is a value from a user-select dropdown list.

However, a start and stop date such as 01/01/2007 to 12/31/2007 will also return records from the year 2006 (arrrghhhh!...frustrating). How can I make this work? I know there is a BETWEEN statement that can be used, but I am unable to get anything to work..... maybe my parentheses are not structured correctly. Thanks for any assistance.
0
Comment
Question by:jazjef
  • 3
  • 2
6 Comments
 
LVL 3

Expert Comment

by:cforant
ID: 20406280
SELECT column_name FROM table_name
WHERE column_name
BETWEEN value1 AND value2
0
 
LVL 23

Accepted Solution

by:
Ashish Patel earned 500 total points
ID: 20406447
Try this.
SELECT [ID], [BILLNUMBER], [CHARGEDATE], [LNAME], [FNAME] FROM [TABLETracking] WHERE [CHARGEDATE] IS NOT NULL AND [CHARGEDATE] BETWEEN @CHARGEDATE AND @CHARGEDATE2 AND [7CAT] = @7CAT

0
 
LVL 4

Author Comment

by:jazjef
ID: 20406575
asvforce:

thanks for the reply... your statement works fine, but I still get records from 2006 when I use it.
0
Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

 
LVL 23

Expert Comment

by:Ashish Patel
ID: 20406617
What is the column type of CHARGEDATE column?
0
 
LVL 4

Author Comment

by:jazjef
ID: 20406853
ASVFORCE:

column type was char(10)

this was causing the problem.... when I converted to datetime your solution works.... and so does my own original solution prior to asking the question.... thanks.

I have another problem though.... I will post a question on it momentarily. It's related to this datetime thing...
0
 
LVL 23

Expert Comment

by:Ashish Patel
ID: 20406865
Good catch!!! Glad to hear that you have solved this now.
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

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

Confronted with some SQL you don't know can be a daunting task. It can be even more daunting if that SQL carries some of the old secret codes used in the Ye Olde query syntax, such as: (+)     as used in Oracle;     *=     =*    as used in Sybase …
In this article I will describe the Copy Database Wizard method as one possible migration process and I will add the extra tasks needed for an upgrade when and where is applied so it will cover all.
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

803 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