Kak da formatiram...
16 отговора
409 прегледа
Kak da formatiram...
Zdraveite!
Imam slednia vapros. Imam slednoto pole v MySql: data tip timestamp. Kak moga da go formatiram kam balgarskia nachin za izvejdane na datata, t.e 19 Fevruari 2002 g, 14:30.
Predvaritelno blagodarya za pomosta
Imam slednia vapros. Imam slednoto pole v MySql: data tip timestamp. Kak moga da go formatiram kam balgarskia nachin za izvejdane na datata, t.e 19 Fevruari 2002 g, 14:30.
Predvaritelno blagodarya za pomosta
Re: Kak da formatiram...
select FROM_UNIXTIME(timestamp,'%d %M %Y g, %h:%i') from tlbtimes
bofh
bofh
Re: Kak da formatiram...
Груба грешка bofh
Linux is like a wigwam - No Windows, No Gates, Apache inside
Linux is like a wigwam - No Windows, No Gates, Apache inside
Re: Kak da formatiram...
select DATE_FORMAT(timestamp,'%d %M %Y g, %h:%i') from ...
mysql.online.bg/documentation/mysql/bychapter/manual_Reference.html#Date_and_time_functions
Linux is like a wigwam - No Windows, No Gates, Apache inside
mysql.online.bg/documentation/mysql/bychapter/manual_Reference.html#Date_and_time_functions
Linux is like a wigwam - No Windows, No Gates, Apache inside
Re: Kak da formatiram...
FROM_UNIXTIME(unix_timestamp,format)
Returns a string representation of the Unix timestamp, formatted according to the format string. format may contain the same specifiers as those listed in the entry for the DATE_FORMAT() function:
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),
'%Y %D %M %h:%i:%s %x');
-> '1997 23rd December 03:43:30 x'

Returns a string representation of the Unix timestamp, formatted according to the format string. format may contain the same specifiers as those listed in the entry for the DATE_FORMAT() function:
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),
'%Y %D %M %h:%i:%s %x');
-> '1997 23rd December 03:43:30 x'
Re: Kak da formatiram...
DATE_FORMAT(date,format)
a ne DATE_FORMAT(timestamp,format)

a ne DATE_FORMAT(timestamp,format)
Re: Kak da formatiram...
Абсолютно нормално се държи DATE_FORMAT и ако първият параметър е timestamp, така че поэгорният пример си е най-естествения в случая
А ако въпроса е бил за това да изкарва връща
6 февруари 2002 (месеца на български и кирилица) вече става малко по-кашаво
А ако въпроса е бил за това да изкарва връща
6 февруари 2002 (месеца на български и кирилица) вече става малко по-кашаво
Re: Kak da formatiram...
DATE_FORMAT() работи със всички
DATE, TIME, DATETIME, TIMESTAMP
за разлика от TIME_FORMAT() която не работи с DATE
Linux is like a wigwam - No Windows, No Gates, Apache inside
DATE, TIME, DATETIME, TIMESTAMP
за разлика от TIME_FORMAT() която не работи с DATE
Linux is like a wigwam - No Windows, No Gates, Apache inside
Re: Kak da formatiram...
probvam versia 3.23.49 i 3.22.32 (rezultata e ednakav zatova niama da go dubliram)
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
+--------------------------------------------------------+
| FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x') |
+--------------------------------------------------------+
| 2002 20th February 03:20:44 2002 |
+--------------------------------------------------------+
1 row in set (0.02 sec)
mysql> select DATE_FORMAT(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
+------------------------------------------------------+
| DATE_FORMAT(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x') |
+------------------------------------------------------+
| NULL |
+------------------------------------------------------+
1 row in set (0.00 sec)
kakvo shte reche tova NULL?? (da rechem po koito i da e standart za data
)

mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
+--------------------------------------------------------+
| FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x') |
+--------------------------------------------------------+
| 2002 20th February 03:20:44 2002 |
+--------------------------------------------------------+
1 row in set (0.02 sec)
mysql> select DATE_FORMAT(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
+------------------------------------------------------+
| DATE_FORMAT(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x') |
+------------------------------------------------------+
| NULL |
+------------------------------------------------------+
1 row in set (0.00 sec)
kakvo shte reche tova NULL?? (da rechem po koito i da e standart za data
Re: Kak da formatiram...
А какво се опитваш да направищ всъщност?
Я пробвай:
select UNIX_TIMESTAMP(), DATE_FORMAT(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
| UNIX_TIMESTAMP() | DATE_FORMAT(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x') |
+------------------+------------------------------------------------------+
| 1014212155 | NULL |
Ако не схващаш питай
Еквилибристиката:
select FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
пък съвсем не я схващам
Можеш да направиш
select 1+1-1 и да получиш 1 ама какъв е смисъла?
Що не направо:
select DATE_FORMAT(NOW(), '%Y %D %M %T');
Както си му е реда?
Linux is like a wigwam - No Windows, No Gates, Apache inside
Я пробвай:
select UNIX_TIMESTAMP(), DATE_FORMAT(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
| UNIX_TIMESTAMP() | DATE_FORMAT(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x') |
+------------------+------------------------------------------------------+
| 1014212155 | NULL |
Ако не схващаш питай
Еквилибристиката:
select FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
пък съвсем не я схващам
Можеш да направиш
select 1+1-1 и да получиш 1 ама какъв е смисъла?
Що не направо:
select DATE_FORMAT(NOW(), '%Y %D %M %T');
Както си му е реда?
Linux is like a wigwam - No Windows, No Gates, Apache inside
Re: Kak da formatiram...
ami vish vaprosa na choveka (parvia vapros po temata)!!!! poleto mu e v timestamp, kakvo vrashta UNIX_TIMESTAMP() - timestamp ......... mislia da ne prodaljavam

Re: Kak da formatiram...
a tova deto si go pisal ti
select UNIX_TIMESTAMP(), DATE_FORMAT(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
| UNIX_TIMESTAMP() | DATE_FORMAT(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x') |
+------------------+------------------------------------------------------+
| 1014212155 | NULL |
ne ti li govori, che DATE_FORMAT() ne priema TIMESTAMP ??

ne izdarjah se pak da ne prodalja

select UNIX_TIMESTAMP(), DATE_FORMAT(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
| UNIX_TIMESTAMP() | DATE_FORMAT(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x') |
+------------------+------------------------------------------------------+
| 1014212155 | NULL |
ne ti li govori, che DATE_FORMAT() ne priema TIMESTAMP ??
Re: FAQ ili README ili to si pishe ama ....
Типът TIMESTAMP в MySQL и timestamp в Unix света още известен като epoch или броя секунди от 1970-01-01 са различни неща.
Пишат хората документация ама някой трябва и да я чете
Хайде сега бегом марш до MySQL промпта и пиши:
SELECT NOW(), NOW()+0, UNIX_TIMESTAMP(NOW());
И ги разгледай внимателно. Ама МНОООГО внимателно
После пробвай
CREATE TABLE t (dt DATETIME, ts TIMESTAMP);
INSERT INTO t VALUES (NOW(), NOW());
SELECT dt, ts FROM t;
И ги разгледай ОЩЕ ПО-ВНИМАТЕЛНО
Като внимаваш да ги сравниш с резултата от горното.
Всичко това е много добре обяснено в документацията на MySQL
mysql.online.bg/documentation/mysql/bychapter/manual_Reference.html#Date_and_time_types
mysql.online.bg/documentation/mysql/bychapter/manual_Reference.html#DATETIME
mysql.online.bg/documentation/mysql/bychapter/manual_Reference.html#Storage_requirements
mysql.online.bg/documentation/mysql/bychapter/manual_Reference.html#Date_and_time_functions
Linux is like a wigwam - No Windows, No Gates, Apache inside
Пишат хората документация ама някой трябва и да я чете
Хайде сега бегом марш до MySQL промпта и пиши:
SELECT NOW(), NOW()+0, UNIX_TIMESTAMP(NOW());
И ги разгледай внимателно. Ама МНОООГО внимателно
После пробвай
CREATE TABLE t (dt DATETIME, ts TIMESTAMP);
INSERT INTO t VALUES (NOW(), NOW());
SELECT dt, ts FROM t;
И ги разгледай ОЩЕ ПО-ВНИМАТЕЛНО
Като внимаваш да ги сравниш с резултата от горното.
Всичко това е много добре обяснено в документацията на MySQL
mysql.online.bg/documentation/mysql/bychapter/manual_Reference.html#Date_and_time_types
mysql.online.bg/documentation/mysql/bychapter/manual_Reference.html#DATETIME
mysql.online.bg/documentation/mysql/bychapter/manual_Reference.html#Storage_requirements
mysql.online.bg/documentation/mysql/bychapter/manual_Reference.html#Date_and_time_functions
Linux is like a wigwam - No Windows, No Gates, Apache inside
Re: FAQ ili README ili to si pishe ama ....
А ако и след като прочетеш какво пише в документацията
и ако още не си схванал пробвай следното:
CREATE TABLE t (dt DATETIME, ts TIMESTAMP);
INSERT INTO t VALUES (NOW(), NOW());
SELECT dt, ts, dt+0, UNIX_TIMESTAMP(dt), UNIX_TIMESTAMP(ts) FROM t;
Толкова ли е трудно да загрееш, че всеки тип си има така да се каже Default Display Format?
И че на
DATETIME default форматът e "YYYY-MM-DD HH:II:SS"
на
TIMESTAMP е "YYYYMMDDHHIISS"
Докато UNIX_TIMESTAMP(<date, datetime или timestamp>)
връща БРОЙ СЕКУНДИ
Ама се хабили да пишат документация
Ама направили табличка, която казва
Column type Display format
TIMESTAMP(14) YYYYMMDDHHMMSS
TIMESTAMP(12) YYMMDDHHMMSS
TIMESTAMP(10) YYMMDDHHMM
TIMESTAMP(8) YYYYMMDD
TIMESTAMP(6) YYMMDD
TIMESTAMP(4) YYMM
TIMESTAMP(2) YY
не той разбираш ли си Мислел
и бил Останал с Впечатление
Те документациите са за тъпанари разбираш ли
А за тъпанарите дето не са толкова велики и четат е написано:
UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)
If called with no argument, returns a Unix timestamp (seconds since '1970-01-01 00:00:00' GMT) as an unsigned integer. If UNIX_TIMESTAMP() is called with a date argument, it returns the value of the argument as seconds since '1970-01-01 00:00:00' GMT. date may be a DATE string, a DATETIME string, a TIMESTAMP, or a number in the format YYMMDD or YYYYMMDD in local time:
mysql> select UNIX_TIMESTAMP();
-> 882226357
mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');
-> 875996580
When UNIX_TIMESTAMP is used on a TIMESTAMP column, the function will return the internal timestamp value directly, with no implicit ``string-to-unix-timestamp'' conversion. If you give UNIX_TIMESTAMP() a wrong or out-of-range date, it will return 0. If you want to subtract UNIX_TIMESTAMP() columns, you may want to cast the result to signed integers. S
Linux is like a wigwam - No Windows, No Gates, Apache inside
и ако още не си схванал пробвай следното:
CREATE TABLE t (dt DATETIME, ts TIMESTAMP);
INSERT INTO t VALUES (NOW(), NOW());
SELECT dt, ts, dt+0, UNIX_TIMESTAMP(dt), UNIX_TIMESTAMP(ts) FROM t;
Толкова ли е трудно да загрееш, че всеки тип си има така да се каже Default Display Format?
И че на
DATETIME default форматът e "YYYY-MM-DD HH:II:SS"
на
TIMESTAMP е "YYYYMMDDHHIISS"
Докато UNIX_TIMESTAMP(<date, datetime или timestamp>)
връща БРОЙ СЕКУНДИ
Ама се хабили да пишат документация
Ама направили табличка, която казва
Column type Display format
TIMESTAMP(14) YYYYMMDDHHMMSS
TIMESTAMP(12) YYMMDDHHMMSS
TIMESTAMP(10) YYMMDDHHMM
TIMESTAMP(8) YYYYMMDD
TIMESTAMP(6) YYMMDD
TIMESTAMP(4) YYMM
TIMESTAMP(2) YY
не той разбираш ли си Мислел
и бил Останал с Впечатление
Те документациите са за тъпанари разбираш ли
А за тъпанарите дето не са толкова велики и четат е написано:
UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)
If called with no argument, returns a Unix timestamp (seconds since '1970-01-01 00:00:00' GMT) as an unsigned integer. If UNIX_TIMESTAMP() is called with a date argument, it returns the value of the argument as seconds since '1970-01-01 00:00:00' GMT. date may be a DATE string, a DATETIME string, a TIMESTAMP, or a number in the format YYMMDD or YYYYMMDD in local time:
mysql> select UNIX_TIMESTAMP();
-> 882226357
mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');
-> 875996580
When UNIX_TIMESTAMP is used on a TIMESTAMP column, the function will return the internal timestamp value directly, with no implicit ``string-to-unix-timestamp'' conversion. If you give UNIX_TIMESTAMP() a wrong or out-of-range date, it will return 0. If you want to subtract UNIX_TIMESTAMP() columns, you may want to cast the result to signed integers. S
Linux is like a wigwam - No Windows, No Gates, Apache inside
Редактирано от salle на
Re: S izvinenia za grubia ton...
.
Linux is like a wigwam - No Windows, No Gates, Apache inside
Linux is like a wigwam - No Windows, No Gates, Apache inside