source

MySQL 쿼리에서 타임스탬프를 현재 날짜로 변환

gigabyte 2022. 9. 25. 21:19
반응형

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'

시작_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)

열의 데이터 유형을 변경하려면 먼저 다음에서 변환할 수 있습니다.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

반응형