Преобразование метки времени в запрос MySQL



Я хочу, чтобы преобразовать timestamp в MySQL на дату.



Я хотел бы отформатировать пользователя.поле регистрации в текстовом файле как yyyy-mm-dd.



вот мой SQL:



$sql = requestSQL("SELECT user.email, 
info.name,
FROM_UNIXTIME(user.registration),
info.news
FROM user, info
WHERE user.id = info.id ", "export members");


Я также попробовал преобразование даты с помощью:



DATE_FORMAT(user.registration, '%d/%m/%Y')
DATE(user.registration)


Я повторяю результат, прежде чем писать текстовый файл, и я получаю :




email1; name1; DATE_FORMAT(user.Регистрация, '%d / %m / %Y'); news1



email2; name2; news2




как преобразовать это поле в дату?

710   9  

9 ответов:

DATE_FORMAT(FROM_UNIXTIME(`user.registration`), '%e %b %Y') AS 'date_formatted'

конвертировать метку времени в дату в MYSQL

сделать таблицу со значением времени:

mysql> create table foo(id INT, mytimestamp INT(11));
Query OK, 0 rows affected (0.02 sec)

вставить некоторые значения

mysql> insert into foo values(1, 1381262848);
Query OK, 1 row affected (0.01 sec)

посмотреть

mysql> select * from foo;
+------+-------------+
| id   | mytimestamp |
+------+-------------+
|    1 |  1381262848 |
+------+-------------+
1 row in set (0.00 sec)

преобразовать число в метку времени:

mysql> select id, from_unixtime(mytimestamp) from foo;
+------+----------------------------+
| id   | from_unixtime(mytimestamp) |
+------+----------------------------+
|    1 | 2013-10-08 16:07:28        |
+------+----------------------------+
1 row in set (0.00 sec)

преобразовать его в читаемый формат:

mysql> select id, from_unixtime(mytimestamp, '%Y %D %M %h:%i:%s') from foo;
+------+-------------------------------------------------+
| id   | from_unixtime(mytimestamp, '%Y %D %M %h:%i:%s') |
+------+-------------------------------------------------+
|    1 | 2013 8th October 04:07:28                       |
+------+-------------------------------------------------+
1 row in set (0.00 sec)

чтобы просто получить дату вы можете cast это

cast(user.registration as date)

а чтобы получить определенный формат используйте date_format

date_format(registration, '%Y-%m-%d')

демо SQLFiddle

Если registration поле действительно имеет тип TIMESTAMP вы должны быть в состоянии просто сделать:

$sql = "SELECT user.email, 
           info.name, 
           DATE(user.registration), 
           info.news
      FROM user, 
           info 
     WHERE user.id = info.id ";

и регистрация должна отображаться как гггг-ММ-ДД

просто используйте функцию даты mysql:

mysql> select DATE(mytimestamp) from foo;

вы должны преобразовать timestamp to date.

select FROM_UNIXTIME(user.registration, '%Y-%m-%d %H:%i:%s') AS 'date_formatted'

FROM_UNIXTIME

Если вы получаете запрос в своем выводе, вам нужно показать нам код, который фактически повторяет результат. Можете ли вы опубликовать код, который вызывает requeteSQL?

например, если вы используете одинарные кавычки в PHP, он будет печатать имя переменной, а не значение

echo 'foo is $foo'; // foo is $foo

Это звучит точно так же, как ваша проблема, и я уверен, что это причина.

кроме того, попробуйте удалить символ"@", чтобы увидеть, если это помогает, давая вам больше инфромация.

, Так что

$SQL_result = @mysql_query($SQL_requete); // run the query

становится

  $SQL_result = mysql_query($SQL_requete); // run the query

это остановит любое подавление ошибок, если запрос выдает ошибку.

Я сделал это с помощью функции "дата", как описано в здесь:

(SELECT count(*) as the-counts,(date(timestamp)) as the-timestamps FROM `user_data` WHERE 1 group BY the-timestamps)

попробуй:

SELECT strftime("%Y-%d-%m", col_name, 'unixepoch') AS col_name

он будет форматировать метку времени в миллисекундах в строку yyyy-mm-dd.

Comments

    Ничего не найдено.