2012-03-11 6 views
-2

У меня есть таблица в моей базе данных SQL Server с именем OrderDetail, которая хранит данные заказа. У меня есть столбец в этой таблице, называемый OrderDate, который хранит информацию о датах и ​​времени о заказах.Как вернуть данные, упорядоченные сегодня на C# или SQL Server?

Я хочу получить все эти заказы от OrderDetail таблицы, которые были созданы сегодня.

Мой сценарий заключается в том, что я хочу создать кнопку, которая будет нажимать администратором ночью, чтобы увидеть, сколько заказов сделано сегодня?

Любая помощь в этом отношении будет оценена по достоинству.

ответ

0

попробовать что-то вроде этого:

SELECT A.OrderID, ... 
FROM OrderDetail as 'A' INNER JOIN OrderDate as 'B' ON 
     A.OrderID = B.OrderID 
WHERE B.DateOfOrder BETWEEN '5/20/2011 00:00:00' AND '5/20/2011 23:59:59' 

Я предположил, что у вас есть в вашем IDOrderDetail и ID то же самое в OrderDate таблице.

+0

Как я могу сделать это в C#. я имею в виду дату выписки из datetime –

+0

@ DigitalAssets, которая будет зависеть от того, как вы подключаетесь к базе данных с C# - ADO.NET, Linq-To-SQL, EF ...? Что-то другое...? – JohnL

+0

@ DigitalAssets вам нужно быть более ясными в отношении того, о чем вы просите. В вашем вопросе отсутствует информация. Предоставление схемы вашего стола поможет. Вы развиваетесь в winforms? –

0
select * from OrderDetails 
where cast(OrderDate as date) = '2012-03-11' 

Если вы хотите, чтобы извлечь часть даты из DateTime в C#, то сделать это:

DateTime dt = DateTime.Now; 
DateTime d = dt.Date; 
//or if you want a string 
string dStr = dt.ToString("yyyy-MM-dd"); 
+0

Я использовал datetime datatype. Как извлечь из нее дату. –

+0

@ DigitalAssets: Смотрите мое редактирование. –

+0

ОП не упоминал, является ли это SQL Server 2008. Он может/не иметь доступ к типу данных DATE. –

0
SELECT * FROM OrderDetail 
WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, OrderDate)) = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) 

DATEADD(dd, 0, DATEDIFF(dd, 0, OrderDate) < < это, чтобы избавиться от временной части.

+0

Как я могу сделать это в C#. Я имею в виду дату выписки из datetime. –

+0

Почему это нужно сделать в C#, если это можно сделать на сервере sql? –

0

Попробуйте с этим запросом:

SELECT * FROM OrderDetails 
WHERE CONVERT(VARCHAR(10), OrderDate , 101)=CONVERT(VARCHAR(10),GETDATE(),101);