Link to home
Start Free TrialLog in
Avatar of maqskywalker
maqskywalker

asked on

using t-sql date function to get records older than 10 days

i'm using sql server 2008

I have a table that looks like this:

User generated image
This is the script to create this table.

USE [TestDatabase]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Orders1](
	[OrderID] [int] NULL,
	[CustomerID] [nvarchar](255) NULL,
	[EmployeeID] [int] NULL,
	[OrderDate] [datetime] NULL,
	[Freight] [decimal](20, 2) NULL
) ON [PRIMARY]

GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11074, N'SIMOB', 7, CAST(N'2018-04-24T09:34:00.000' AS DateTime), CAST(18.44 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11075, N'RICSU', 8, CAST(N'2018-04-23T08:30:00.000' AS DateTime), CAST(6.19 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11076, N'BONAP', 4, CAST(N'2018-04-23T07:10:00.000' AS DateTime), CAST(38.28 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11077, N'RATTC', 1, CAST(N'2018-04-20T08:20:00.000' AS DateTime), CAST(8.53 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11070, N'LEHMS', 2, CAST(N'2018-04-15T10:23:00.000' AS DateTime), CAST(136.00 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11071, N'LILAS', 1, CAST(N'2018-04-14T08:00:00.000' AS DateTime), CAST(0.93 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11072, N'ERNSH', 4, CAST(N'2018-04-14T06:34:00.000' AS DateTime), CAST(258.64 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11073, N'PERIC', 2, CAST(N'2018-04-12T01:00:00.000' AS DateTime), CAST(24.95 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11067, N'DRACD', 1, CAST(N'2018-04-11T09:00:00.000' AS DateTime), CAST(7.98 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11068, N'QUEEN', 8, CAST(N'2018-04-10T08:22:00.000' AS DateTime), CAST(81.75 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11069, N'TORTU', 1, CAST(N'2018-04-10T08:20:00.000' AS DateTime), CAST(15.67 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11064, N'SAVEA', 1, CAST(N'2018-04-09T09:40:00.000' AS DateTime), CAST(30.09 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11065, N'LILAS', 8, CAST(N'2018-04-08T00:00:00.000' AS DateTime), CAST(12.91 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11066, N'WHITC', 7, CAST(N'2018-04-07T09:20:00.000' AS DateTime), CAST(44.72 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11060, N'FRANS', 2, CAST(N'2018-04-06T00:00:00.000' AS DateTime), CAST(10.98 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11061, N'GREAL', 4, CAST(N'2018-04-05T05:34:00.000' AS DateTime), CAST(14.01 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11062, N'REGGC', 4, CAST(N'2018-04-04T05:10:00.000' AS DateTime), CAST(29.93 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11063, N'HUNGO', 3, CAST(N'2018-04-03T04:50:00.000' AS DateTime), CAST(81.73 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11057, N'NORTS', 3, CAST(N'2018-04-02T02:32:00.000' AS DateTime), CAST(4.13 AS Decimal(20, 2)))
GO
INSERT [dbo].[Orders1] ([OrderID], [CustomerID], [EmployeeID], [OrderDate], [Freight]) VALUES (11058, N'BLAUS', 9, CAST(N'2018-04-01T02:30:00.000' AS DateTime), CAST(31.14 AS Decimal(20, 2)))
GO

Open in new window


What's the most efficient query to return all orders whose OrderDate is older than 10 days from today's date?
So get today's date form using date function and return all orders older than 10 days.
SOLUTION
Avatar of Nitin Sontakke
Nitin Sontakke
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ste5an's got it; his first method is perfect.
Avatar of maqskywalker
maqskywalker

ASKER

Thanks guys. Great job.