У меня есть таблица с кучей записей, содержащих дни рождения. Итак, поле varchar
, и каждая запись имеет формат yyyy/mm/dd (например: 1903/11/27).Как работать с полем varchar, который находится в формате даты?
Каков наилучший способ определения записей, имеющих день рождения с 1 по 10 января?
Моя текущая мысль состоит в том, чтобы использовать ПРАВЫЕ функции и фиксировать значения dd и mm в двух отдельных столбцах в новой таблице темп. Как только это будет сделано, я буду использовать «AND», чтобы получить нужные записи.
Так что-то вдоль линий:
SELECT * from BIRTHDAYS where (DateBday >= 1 AND DateBday < 11) and (MonthBday = 1)
Есть ли более простой способ?
Преобразование в столбец 'DATETIME' - в конце концов, если это дата - почему бы не сохранить его в соответствующем типе данных? –
Будут ли поиски когда-либо пересекать месяцы? Это будет проблемой для вашей текущей настройки (я думаю). – jadarnel27
Ну, я не DBA, так что это не вариант в этом случае. Но я перешел в временную таблицу, а затем сохранил ее в соответствующем формате. Затем я использую функцию DATEPART, чтобы получить только месяц и день (как я не хотел года) записей, которые я искал. – Ray