Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2011, 19:49   #1
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию Postgre: в поле Date возможен ли ввод только года?

Здраствуйте!
Столкнулась с проблемой - у меня в таблице "Обучение" есть поле "Учебный год" типа Date. Надо, чтобы пользователь вводил туда только значение года. А Слон полностью дату запрашивает. Я знаю, что есть такая опция interval YEAR . а как ее правильно назначить на поле, нигде не сказано. Или такое невозможно?

И хотелось бы уточнить заодно, как можно избавиться от американского формата (год-месяц-день) и перейти к европейскому?
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan

Последний раз редактировалось Blondy; 06.10.2011 в 19:52.
Blondy вне форума Ответить с цитированием
Старый 06.10.2011, 20:38   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

выскажу своё лично мнение, без привязки к конкретной СУБД...

если ещё не поздно - поменяйте тип поля на numeric(4), integer или что там ещё в данной БД есть из целочисленного.
Ибо если Вам нужен ТОЛЬКО год - тогда хранить (и обрабатывать) дату - это только лишние хлопоты!

Если же это по какой-то причине нежелательно/невозможно, тогда можно поступить так - при чтении из таблицы извлекать год (в любой СУБД есть такие функции), а при записи добавлять к введённому году константы - например, 1 число 1-го месяца и конвертировать в дату...

Цитата:
как можно избавиться от американского формата (год-месяц-день) и перейти к европейскому?
тоже небольшое замечание. Дата хранится во внутреннем формате БД. (это обычно число дней от определённой даты и/или число секунд от заданной точки).
Значит, Ваш вопрос относится к тому, как получать дату в заданном формате...
я бы получал переменную типа Date, а потом уже на клиенте отображал её так, как Вашей душеньке угодно!
НО! Если Вы твёрдно уверены в том, что понимаете, что творите, тогда можно и так (взято из ветки отсюда):
Цитата:
Код:
select to_char( ВашеПолеТипаДата, 'DD.MM.YYYY' ), to_char( ВашеПолеТипаДата, 'YYYY-MM-DD' );
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.10.2011, 20:41   #3
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Сереж, спасибо! Я пока заполняю таблицы данными, и еще надеюсь, можно что-то изменить. При заполнении возникли проблемы, вот я и призадумалась, как бы сделать проще в том числе и для дальнейшей обработки.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод текста в поле на сайте Solncelikiy Помощь студентам 2 10.11.2010 16:25
Ввод только цифр StdentOfCollege Общие вопросы Delphi 3 09.04.2010 16:13
Вывод только одного года ('yyyy') из даты 'dd.mm.yyyy'. В Accese Droid БД в Delphi 13 09.12.2009 13:37
Как сократить всю дату до вывода только года .ГГ ? jmaz Microsoft Office Excel 4 07.12.2009 12:37
отображение в поле месяца и года kate158 Общие вопросы Delphi 4 04.12.2009 12:56