Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Текущая дата / 25 сообщений из 31, страница 1 из 2
14.02.2006, 05:12:21
    #33542318
ADMRep
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
Код: plaintext
1.
$Date=date;
$query="insert into Customers values ('', '', '$FIO', '$pass', '$Qestion','$Ansver','$e','$telephone','$Rassylka','$Date')";
Нужно присвоить переменной текущую дату, когда выполняю код вышеуказанный, то в базу добавляется 0000-00-00... Почему?
...
Рейтинг: 0 / 0
14.02.2006, 06:05:34
    #33542331
topa1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
попробуй @LocTime=localtime;
$Loctime[3] - это число
$Loctime[4] - номер месяца, нумерация с нуля
$Loctime[5] - год. Отсчет идет с 1900, т.е. если год 2006, то $LocTime[5] будет равен 106
...
Рейтинг: 0 / 0
14.02.2006, 07:06:46
    #33542372
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
лучше не пользовать дату в таком виде.
Обьяви в БД поле для даты типа integer
и присваевай значение в секундах от 1970 года.
потом если нужно конвертируй в тот вид что тебе нужен.
...
Рейтинг: 0 / 0
14.02.2006, 07:23:29
    #33542390
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
vivлучше не пользовать дату в таком виде.
Обьяви в БД поле для даты типа integerКакого хрена? Дату надо хранить в специальнопредназначенном для этого формате, а не выдумывать всякую ерунду ещё на этапе проектирования.
...
Рейтинг: 0 / 0
14.02.2006, 07:24:54
    #33542393
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
ADMRepПочему?По качану.
http://phpfaq.ru/debug + документация по используемой БД.
...
Рейтинг: 0 / 0
14.02.2006, 09:57:35
    #33542635
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
* vivлучше не пользовать дату в таком виде.
Обьяви в БД поле для даты типа integerКакого хрена? Дату надо хранить в специальнопредназначенном для этого формате, а не выдумывать всякую ерунду ещё на этапе проектирования.
как показала практика это самый оптимальный вариант, не спорь просто делай
...
Рейтинг: 0 / 0
14.02.2006, 11:09:08
    #33542870
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
Два варианта:
Код: plaintext
$Data = date("d.m.Y H:i:s");
Код: plaintext
$query="insert into Customers values ('', '', '$FIO', '$pass', '$Qestion','$Ansver','$e','$telephone','$Rassylka',NOW())";

В первом случае мы сами создаем текущую дату самостоятельно. Во втором случае за нас это делает MySQL.
...
Рейтинг: 0 / 0
14.02.2006, 16:11:45
    #33544108
ADMRep
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
DamnedestДва варианта:
Код: plaintext
$Data = date("d.m.Y H:i:s");
Код: plaintext
$query="insert into Customers values ('', '', '$FIO', '$pass', '$Qestion','$Ansver','$e','$telephone','$Rassylka',NOW())";

В первом случае мы сами создаем текущую дату самостоятельно. Во втором случае за нас это делает MySQL.
Пасибо!!!
...
Рейтинг: 0 / 0
14.02.2006, 17:35:51
    #33544407
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
viv * vivлучше не пользовать дату в таком виде.
Обьяви в БД поле для даты типа integerКакого хрена? Дату надо хранить в специальнопредназначенном для этого формате, а не выдумывать всякую ерунду ещё на этапе проектирования.
как показала практика это самый оптимальный вариант, не спорь просто делай
Интересная практика. Можно поподробнее?)
...
Рейтинг: 0 / 0
14.02.2006, 19:54:46
    #33544748
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
vivкак показала практика это самый оптимальный вариант, не спорь просто делайНихренова себе :)
"Не спорь, просто делай" - это совет для имбицилов. А не аргументация.
...
Рейтинг: 0 / 0
16.02.2006, 07:36:46
    #33547950
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
DocAl
Интересная практика. Можно поподробнее?)
все просто.
вставляешь не NOW()
а time()
а лучше mktime(0, 0, 0, date("m", time()), date("d", time()), date("Y", time()))
понимаю длиновато зато удобно.
Особенно работать со всякими календарями на яваскрипте где значение даты передаваемое скрипту тоже хранится в таком виде.
...
Рейтинг: 0 / 0
16.02.2006, 08:45:35
    #33548008
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
Ну и в чём бонус великий этого?
...
Рейтинг: 0 / 0
16.02.2006, 10:47:55
    #33548302
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
DocAlНу и в чём бонус великий этого?
так ты точно будешь уверен что у тебя не возникнет проблем с конвертациями и прочей ерундой
...
Рейтинг: 0 / 0
16.02.2006, 11:05:44
    #33548368
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
>вставляешь не NOW()
>вставляешь не NOW()а time()
>а лучше mktime(0, 0, 0, date("m", time()), date("d", time()), date("Y", time()))

Если нужно UNIX-время, то есть функция в MySQL - UNIX_TIMESTAMP().
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
16.02.2006, 13:37:07
    #33548966
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
vivкак показала практика это самый оптимальный вариант, не спорь просто делай

Напиши ка мне скрипт для получения всех пользователей зарегенных в 2005 году... если у тебя поле типа INT 11... а я посмеюсь...
...
Рейтинг: 0 / 0
16.02.2006, 15:48:11
    #33549548
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
Да нет, в общем-то, несложно, достаточно посчитать юниксовую метку времени для 00:00:00 1 января 2005 года и 23:59:59 31 декабря 2005 года, после чего в запросе сказать, что чиселка лежит BETWEEN, но в целом, смысла в такой деятельности немного.
...
Рейтинг: 0 / 0
16.02.2006, 15:49:50
    #33549555
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
А вот когд надо будет выбрать всех пользователей зарегестрированных в феврале - начнется праздник да?
...
Рейтинг: 0 / 0
17.02.2006, 09:14:51
    #33550877
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
DamnedestА вот когд надо будет выбрать всех пользователей зарегестрированных в феврале - начнется праздник да?
какой праздник?????
поподробней пожалуста
...
Рейтинг: 0 / 0
17.02.2006, 10:16:45
    #33551004
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
авторкакой праздник?????
поподробней пожалуста
Высокосный/невысокосный год.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
17.02.2006, 11:51:48
    #33551400
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
Ага... пока вычислишь все интервалы - свихнешься.

Unix удобно использовать в том случае, если есть завязки на текущее время - время посещения сайта, время последней сессии.
DateTime - когда необходимо делать выборки по этому полю...
...
Рейтинг: 0 / 0
17.02.2006, 13:08:37
    #33551803
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
4m@t!c авторкакой праздник?????
поподробней пожалуста
Высокосный/невысокосный год.
----------------------------------------
Артисты не приехали, приехали цыгане
не вижу проблемы.
...
Рейтинг: 0 / 0
17.02.2006, 14:00:58
    #33552075
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
vivне вижу проблемы.
Скрипт в студию.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
17.02.2006, 14:22:06
    #33552177
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
4m@t!cСкрипт в студию. http://dev.mysql.com/doc/mysql/ru/Date_and_time_types.htmlMySQL автоматически преобразует значение, имеющее тип даты или времени, в число, если данная величина используется в числовом контексте, и наоборот. http://dev.mysql.com/doc/refman/4.0/ru/date-and-time-functions.html#id2756787MONTH(date)
Возвращает порядковый номер месяца в году для аргумента date в диапазоне от 1 до 12Однако это ни сколько не противоречит моим словам о том, что даты нужно хранить в специальнопредназначенном для этого формате.
...
Рейтинг: 0 / 0
17.02.2006, 14:32:12
    #33552222
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
4m@t!c vivне вижу проблемы.
Скрипт в студию.
----------------------------------------
Артисты не приехали, приехали цыгане
у тебя есть поле в таблице типа интегер
ты вставляешь туда текущую дату
mktime(0, 0, 0, date("m", time()), date("d", time()), date("Y", time()))
тоесть даже если сейчас высокосный год, то все равно у тебя идет отсчет от 1го января 1970 года в секундах
и если тебе нужно сделать выборку в промежутке
ты берешь первую дату
one_data = mktime(0, 0, 0, 1, 1, 2005);
потом берешь вторую дату
two_data = mktime(0, 0, 0, 1, 1, 2006)
получаешь нужный период
строешь запрос


select * mytable
WHERE my_field_data >= one_data
AND my_field_data <= two_data

и нет никакой проблемы с высокосным не высокосным годами
...
Рейтинг: 0 / 0
17.02.2006, 15:20:31
    #33552476
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая дата
*
http://dev.mysql.com/doc/refman/4.0/ru/date-and-time-functions.html#id2756787
MONTH(date) Возвращает порядковый номер месяца в году для аргумента date в диапазоне от 1 до 12
аргумент date - это не юникс время. Понятно, что есть UNIX_TIMESTAMP(date), но цитата
авторMySQL автоматически преобразует значение, имеющее тип даты или времени, в число, если данная величина используется в числовом контексте, и наоборот. имеет к посту не самое близкое отношение.
Говорится о том, что числовой контекст это строка например "19990213". где 02 воспринимается, как месяц. Попробуйте
Код: plaintext
1.
2.
SELECT MONTH( 19990213 )
и
SELECT MONTH( 1999 )
.

vivу тебя есть поле в таблице типа интегер
Я согласен с Damnedest . Зацепился за топик, потому что прочел пост с категоричным призывом
vivкак показала практика это самый оптимальный вариант, не спорь просто делай
Разницы практически никакой. Например, У меня есть задача вывести всех пользователей, кто родился 29 февраля. Для того, что бы ответить на этот вопрос вам придется преобразовать Юникс-время в человекопонятное. Т.е. что-то вроде:
Код: plaintext
1.
SELECT * FROM `users` WHERE DATE_FORMAT(FROM_UNIXTIME(`users`.`birth`), '%m%d')='0229'
При варианте в формате DATE запрос на одну операцию проще.
Код: plaintext
SELECT * FROM `users` WHERE DATE_FORMAT(`users`.`birth`, '%m%d')='0229'
Если пользователей будет достаточно много, то выгодней пользовать формат DATE. Плюс нет смысла хранить время рождения человека в секундах, т.е. для каждого случая свой формат данных - о чем и заметил *.



----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Текущая дата / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]