복붙노트

[SQL] MySQL의 쿼리 날짜에 타임 스탬프로 변환

SQL

MySQL의 쿼리 날짜에 타임 스탬프로 변환

나는 날짜로 MySQL의에서 타임 스탬프를 변환 할.

나는 YYYY-MM-DD로 텍스트 파일로 user.registration 필드를 포맷하고 싶습니다.

여기 내 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)

텍스트 파일을 작성하기 전에 그 결과를 에코 내가 얻을 :

어떻게 날짜에 해당 필드를 변환 할 수 있습니까?

해결법

  1. ==============================

    1.

    DATE_FORMAT(FROM_UNIXTIME(`user.registration`), '%e %b %Y') AS 'date_formatted'
    
  2. ==============================

    2.정수 타임 스탬프 테이블을 확인 :

    정수 타임 스탬프 테이블을 확인 :

    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)
    
  3. ==============================

    3.단지 날짜를 얻으려면 캐스팅 할 수 있습니다

    단지 날짜를 얻으려면 캐스팅 할 수 있습니다

    cast(user.registration as date)
    

    특정 형식을 사용 DATE_FORMAT를 얻을 수 있습니다

    date_format(registration, '%Y-%m-%d')
    
  4. ==============================

    4.등록 필드가 참으로 TIMESTAMP 유형의 경우, 당신은 할 수 있어야한다 :

    등록 필드가 참으로 TIMESTAMP 유형의 경우, 당신은 할 수 있어야한다 :

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

    상기 등록 YYYY-MM-DD로 표시되어야

  5. ==============================

    5.그냥 mysql을의 DATE 함수를 사용합니다 :

    그냥 mysql을의 DATE 함수를 사용합니다 :

    mysql> select DATE(mytimestamp) from foo;
    
  6. ==============================

    6.당신은 지금까지 타임 스탬프를 변환해야합니다.

    당신은 지금까지 타임 스탬프를 변환해야합니다.

    select FROM_UNIXTIME(user.registration, '%Y-%m-%d %H:%i:%s') AS 'date_formatted'
    

    FROM_UNIXTIME

  7. ==============================

    7.당신이 당신의 출력에 쿼리를 얻고있는 경우에 당신은 우리에게 코드를 실제로 에코 결과를 표시해야합니다. 당신은 requeteSQL를 호출하는 코드를 게시 할 수 있습니까?

    당신이 당신의 출력에 쿼리를 얻고있는 경우에 당신은 우리에게 코드를 실제로 에코 결과를 표시해야합니다. 당신은 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
    

    쿼리가 오류를 던지고 경우이 오류 억제를 중지합니다.

  8. ==============================

    8.여기에 설명 된대로 '날짜'기능을했다 :

    여기에 설명 된대로 '날짜'기능을했다 :

    (SELECT count(*) as the-counts,(date(timestamp)) as the-timestamps FROM `user_data` WHERE 1 group BY the-timestamps)
    
  9. ==============================

    9.FROM_UNIXTIME (UNIX_TIMESTAMP, [포맷]) 당신이 필요로하는 모든 것입니다

    FROM_UNIXTIME (UNIX_TIMESTAMP, [포맷]) 당신이 필요로하는 모든 것입니다

    FROM_UNIXTIME(user.registration, '%Y-%m-%d') AS 'date_formatted'
    

    FROM_UNIXTIME는 숫자 값을 취득하고 날짜 오브젝트로 변환 형식 문자열을 주어진 경우 또는, 그것은 문자열로 반환합니다.

    오래된 솔루션은 초기 날짜 객체를 얻고 두 번째 기능 DATE_FORMAT 그것을 형식을 없었다 ... 그러나 이것은 더 이상 필요

  10. ==============================

    10.시험:

    시험:

    SELECT strftime("%Y-%d-%m", col_name, 'unixepoch') AS col_name
    

    그것은 YYYY-MM-DD 문자열을 밀리 초 단위로 타임 스탬프 포맷합니다.

  11. from https://stackoverflow.com/questions/9251561/convert-timestamp-to-date-in-mysql-query by cc-by-sa and MIT license