[mysql] MySQL 쿼리에서 타임 스탬프를 날짜로 변환

timestampMySQL에서 날짜를 날짜 로 변환하고 싶습니다 .

user.registration 필드를 텍스트 파일로 형식화하고 싶습니다 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; 이름 1; DATE_FORMAT (사용자 등록, ‘% d / % m / % Y’); news1

email2; 이름 2; 뉴스 2

해당 필드를 날짜로 어떻게 변환합니까?



답변

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 데모


답변

은 IF registration필드 유형 참으로 TIMESTAMP당신은 할 수 있어야한다 :

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

등록은 yyyy-mm-dd로 표시되어야합니다.


답변

mysql의 DATE 함수를 사용하십시오.

mysql> select DATE(mytimestamp) from foo;


답변

로 변환해야 timestamp합니다 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

쿼리에서 오류가 발생하면 오류 억제가 중지됩니다.