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)
텍스트 파일을 쓰기 위해 이전 결과를 에코하면 다음과 같이 표시됩니다.
e-메일1;name1;DATE_FORMAT(user.registration, '%d/%m/%Y'), news1
이메일2;이름2;뉴스2
그 필드를 어떻게 최신 상태로 변환할 수 있습니까?
DATE_FORMAT(FROM_UNIXTIME(`user.registration`), '%e %b %Y') AS 'date_formatted'
데이트 신청만 하면 돼
cast(user.registration as date)
특정 포맷을 사용하기 위해
date_format(registration, '%Y-%m-%d')
SQLFiddle 데모
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)
이 경우,registration
밭은 실로 종류다TIMESTAMP
다음 작업을 수행할 수 있어야 합니다.
$sql = "SELECT user.email,
info.name,
DATE(user.registration),
info.news
FROM user,
info
WHERE user.id = info.id ";
등록은 yyy-mm-dd 로 표시됩니다.
mysql의 DATE 함수를 사용합니다.
mysql> select DATE(mytimestamp) from foo;
FROM_UNIXTIME(unix_timestamp, [format])
필요한 것은 이것뿐입니다.
FROM_UNIXTIME(user.registration, '%Y-%m-%d') AS 'date_formatted'
FROM_UNIXTIME
숫자 값을 취득하여 변환합니다.DATE
물건,
또는 형식 문자열이 지정된 경우 문자열로 반환됩니다.
이전 솔루션은 첫 번째 날짜 개체를 가져와 두 번째 함수로 포맷하는 것이었습니다.DATE_FORMAT
...하지만 이것은 더 이상 필요하지 않다.
변환해야 합니다.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
이렇게 하면 쿼리가 오류를 발생시키는 경우 오류 억제가 중지됩니다.
아래 설명과 같이 '날짜' 함수를 사용하여 작업을 수행했습니다.
(SELECT count(*) as the-counts,(date(timestamp)) as the-timestamps FROM `user_data` WHERE 1 group BY the-timestamps)
열의 데이터 유형을 변경하려면 먼저 다음에서 변환할 수 있습니다.TIMESTAMP
로.INT
:
ALTER TABLE table_name MODIFY column_name INT;
그리고 나서.INT
로.DATE
:
ALTER TABLE table_name MODIFY column_name DATE;
단, 컬럼을 변경할 의도가 없고 SELECT만 원하는 경우 date() 함수를 사용할 수 있습니다.
SELECT date(your_timestamp_column) FROM your_table;
시험:
SELECT strftime("%Y-%d-%m", col_name, 'unixepoch') AS col_name
타임스탬프(밀리초 단위)는 yyy-mm-dd 문자열로 포맷됩니다.
언급URL : https://stackoverflow.com/questions/9251561/convert-timestamp-to-date-in-mysql-query
'source' 카테고리의 다른 글
타입에 따라 포인터의 사이즈가 다른 플랫폼이 있나요? (1) | 2022.09.25 |
---|---|
JavaScript %(modulo)는 음수에 대해 음의 결과를 제공합니다. (0) | 2022.09.25 |
WordPress를 사용하여 URL에서 추가 변수를 전달하는 방법 (1) | 2022.09.25 |
PHP에서 폐쇄란 무엇이며 왜 "사용" 식별자를 사용하는가? (0) | 2022.09.25 |
Gradle - 기본 매니페스트 속성 없음 (1) | 2022.09.25 |