[mysql] MySQL 쿼리에서 타임 스탬프를 날짜로 변환
timestamp
MySQL에서 날짜를 날짜 로 변환하고 싶습니다 .
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'
답변
출력에서 쿼리를 얻는 경우 실제로 결과를 에코하는 코드를 표시해야합니다. 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
쿼리에서 오류가 발생하면 오류 억제가 중지됩니다.