MySQL SELECT에서 ISO 8601로 포맷 날짜
표준 타임스탬프에서 데이터베이스에서 날짜를 가져와 ISO 8601로 표시하려고 합니다.PHP에서는 쉽게 할 수 없기 때문에 SELECT 스테이트먼트에서 하려고 합니다.다음과 같은 오류가 표시됩니다.
SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT(date,"%Y-%m-%dT%TZ")
내가 뭘 잘못하고 있지?
그DATE_FORMAT(DateColumn)
에 있어야 합니다.SELECT
리스트:
SELECT DATE_FORMAT(date, '%Y-%m-%dT%TZ') AS date_formatted
FROM table_name
ORDER BY id DESC
이건 내게 효과가 있었다.
DATE_FORMAT( CONVERT_TZ(`timestamp`, @@session.time_zone, '+00:00') ,'%Y-%m-%dT%TZ')
DATE_FORMAT은 MySQL 날짜 열에서만 작동하며 타임스탬프는 작동하지 않습니다.
UNIX 타임스탬프는 1970년1월 1일 UTC 이후의 초수를 포함한 정수입니다.ISO 8601 날짜로 포맷하려면 대신 FROM_UNIXTIME() 함수를 사용해야 합니다.
FROM_UNIXTIME은 DATE_FORMAT과 동일한 형식 문자열을 사용하므로 'created'라는 이름의 열을 포맷하려면 다음과 같이 하십시오.
SELECT created /* e.g. 1288799488 */ ,
FROM_UNIXTIME(created,'%Y-%m-%dT%TZ') /* e.g. 2010-11-03T08:51:28Z */
FROM table_name
데이터베이스에서 날짜 필드를 로드하고 PHP를 사용하여 ISO 형식으로 변환하는 것은 간단합니다.c
문자열을 PHP로 포맷date
: http://www.php.net/manual/en/function.date.php
echo date('c'); // expected "2013-03-08T14:45:37+05:00"
왜 PHP로 하는 것이 어렵습니까?
date("Y-m-d\TH:i:sO",strtotime($sqldata['time']));
아무튼 그거는DATE_FORMAT
선택할 필드에 있어야 합니다.끝에 붙이지 않습니다.
DATE_FORMAT(date, '%Y-%m-%dT%TZ')
있어야 한다select
절을 클릭합니다.
SELECT DATE_FORMAT(date, '%Y-%m-%dT%TZ')
FROM table_name
ORDER BY id DESC
다음과 같이 DATE_FORMAT을 쿼리의 선택 부분으로 이동해야 합니다.
SELECT *, DATE_FORMAT(date,"%Y-%m-%dT%TZ") AS date FROM table_name ORDER BY id DESC
언급URL : https://stackoverflow.com/questions/9321809/format-date-in-mysql-select-as-iso-8601
'programing' 카테고리의 다른 글
PHP로 이메일을 보내려면 어떻게 해야 하나요? (0) | 2022.10.07 |
---|---|
테이블에 아직 없는 값을 삽입합니다. (0) | 2022.10.07 |
세션의 차이점은 무엇입니까?persist()와 session.save()는 휴지 상태입니까? (0) | 2022.09.30 |
목록에 중복 제거 (0) | 2022.09.30 |
루프 내의 크로스 테이블 (0) | 2022.09.30 |