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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2014, 22:40   #1
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию date()

делаю такой запрос
Код:
select date(column_date) as d from mytable
ожидаю получить: 2014-03-05 в место этого получаю 50430-03-07. Что я не так делаю

И еще вопрос -как получить отдельно год, месяц, день?
делаю запрос
Код:
select year(column_date) as y from mytable
получаю ошибку
SAMOUCHKA вне форума Ответить с цитированием
Старый 05.03.2014, 23:05   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

А зачем так делать?
eval вне форума Ответить с цитированием
Старый 05.03.2014, 23:13   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Какого типа column_date?
Если строка то преобразовывать с помошью cast() или просто строковых функций типа substring(). А если datetime то не вижу смысла использовать для нее date()
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.03.2014, 23:25   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а если строка то руки отрубить по самые уши
eval вне форума Ответить с цитированием
Старый 05.03.2014, 23:26   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

к вышесказанному добавлю:
функции работы с датой/временем различаются в разных СУБД.
у Вас СУБД какая?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.03.2014, 23:26   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Бедные уши, тяжело им без рук придется
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.03.2014, 00:56   #7
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
к вышесказанному добавлю:
функции работы с датой/временем различаются в разных СУБД.
у Вас СУБД какая?
Заранее прошу прощения, ибо в SQL я не очень и могу писать чушь. Это все на ос android.

Скажите в каком виде и типе данных лучше хранить дату? И почему в строке плохо?
SAMOUCHKA вне форума Ответить с цитированием
Старый 06.03.2014, 01:13   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
И почему в строке плохо?
по той же причине по которой шапку носят на голове а валенки на ногах
eval вне форума Ответить с цитированием
Старый 06.03.2014, 08:26   #9
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
по той же причине по которой шапку носят на голове а валенки на ногах
а в каком формате надо хранить?
SAMOUCHKA вне форума Ответить с цитированием
Старый 06.03.2014, 08:29   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
Цитата:
И почему в строке плохо?
по той же причине по которой шапку носят на голове а валенки на ногах
ну, строго говоря, если правильно хранить (а правильно это в ЖЁСТКО заданном формате YYYYMMDD, где YYYY - это четыре цифры, задающие год, MM - это всегда две цифры, задающие месяц, DD - это всегда две цифры, задающие день. При необходимости так же в строке можно хранить и время в том же формате.), то можно и строкой обойтись!

НО!!!

Зачем из шапки делать обувь (пользуясь сравнением eval)?!
Если в СУБД умные люди уже сделали нужный формат (обычно это date или datetime). Написали функции, которые с данным форматом корректно работают... Зачем пытаться подменить это своей (и не очень надёжной) самоделкой?

Вот, например, можно же числа хранить в строке? Сделать в БД поле типа Text (char/varchar), и сохранять туда числовые величины.
Догадываетесь, почему это не очень хорошая идея?!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
class Date Alexander1205 Общие вопросы C/C++ 1 04.06.2011 21:00
класс Date fokinamasha Общие вопросы C/C++ 1 31.03.2011 21:16
Функция Date warshadow Microsoft Office Access 5 04.11.2009 01:57
Date 1.0.4 Bigtyoma Софт 4 14.04.2009 10:02
Программка на Delphi показывающая сколько дней осталось до какого-либо события Bigtyoma Общие вопросы Delphi 3 27.03.2009 19:15