Различия по дате - PullRequest
       13

Различия по дате

0 голосов
/ 27 ноября 2009

Как найти отличительные даты в SQL 2000?

Например: у меня есть таблица "Даты". Она содержит разные даты, такие как 26-11-2009, 25-11-2009, 26-11-2009. '26-11-2009' имеет две записи. Когда я выбираю дату из этой таблицы, мне нужны только две записи, такие как 25-11-2009 и 26-11-2009.

Отредактированный раздел:

В таблице 'Emplyoee' есть два поля: JoinDate и EmployeeName.

Все данные, содержащиеся в таблице Emplyoee, выглядят следующим образом:

JoinDate      | EmployeeName
------------------------
02-12-2009   Vijay

03-12-2009   Binoy

03-12-2009   Rahul

Мой запрос на выборку выглядит следующим образом:

SELECT DISTINCT JoinDate,EmployeeName FROM Emplyoee

Я получил Результат следующим образом:

JoinDate   | EmployeeName
------------------------
02-12-2009   Vijay
03-12-2009   Binoy
03-12-2009   Rahul

Но мне нужен результат следующим образом:

JoinDate   | EmployeeName
------------------------
02-12-2009   Vijay
03-12-2009   Binoy(first employee joined on this date)

Ответы [ 4 ]

2 голосов
/ 27 ноября 2009
SELECT DISTINCT DateAdd(dd, DateDiff(dd, 0, MyDateField),0)
FROM MyTable

Это даст вам уникальные даты для вашей таблицы

0 голосов
/ 27 ноября 2009

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

Так что вы можете попробовать это.

SELECT DISTINCT DATEADD(dd,0, DATEDIFF(dd,0,DateVal)) FROM YourTable
0 голосов
/ 27 ноября 2009

Ответ Джима Б описывает, как получить список, где каждая дата встречается ровно один раз.

Или, может быть, вам нужны даты, которые встречаются в вашей таблице только один раз. Ваш вопрос неясен.

select your_date_field
from your_table
group by your_date_field
having count(1) = 1;
0 голосов
/ 27 ноября 2009

SELECT DISTINCT YourDateTimeField<br> FROM dbo.YourTable

хотя; Я предполагаю, что вы хотите что-то вроде этого:

SELECT DISTINCT CONVERT(DATETIME, CONVERT(CHAR(10), YourDateTimeField, 101))<br> FROM dbo.YourTable

Если это большая таблица или если двойное преобразование значительно замедлит работу, вам нужно искать другое решение

...