2008-10-06 4 views
5

내 웹 사이트에서 mysql 테이블의 TIME 필드를 표시하려고하지만 21:00:00 등을 표시하는 대신 오후 8시를 표시하려고합니다. 이 작업을 수행하는 함수/코드 또는 올바른 방향의 포인터가 필요합니다. 첫 번째 회신을 올바른 회신으로 표시합니다.mysql TIME을 24 HR에서 AM/PM 형식으로 변환

답변

0

사용 DATE_FORMAT()

DATE_FORMAT (<Fieled>, '%의 시간 % I : % S % p 나')

또는

DATE_FORMAT (<Fieled>, '%의 R') 또한 노소과 열을 선택할 수 있습니다

2

nix 타임 스탬프는 MYSQL의 UNIX_TIMESTAMP() 기능을 사용합니다. 그런 다음 PHP로 포맷하십시오. IMO이 PHP에서

select a, b, c, UNIX_TIMESTAMP(instime) as unixtime; 

date() 기능 & 형식 그것은 당신이 원하는 어떤 방법을 사용 ... 더 유연하다.

<?php echo date('Y/m/d', $row->unixtime); ?> 

내가 SQL에서 포맷 반대로이 방법을 좋아하는 이유는 나에게 날짜의 형식은 SQL의 날짜를 포맷 (내 생각에) 디스플레이 결정 & 잘못된 느낌이다, B/C입니다 .. 왜 당신의 SQL에 디스플레이 로직을 넣을까요?

이제 PHP에서 데이터를 처리하지 않고 adhoc 쿼리를 수행하는 경우 DATE_FORMAT()이 좋습니다. 그러나 웹상에 데이터가 나타나게하려면 UNIX_TIMESTAMP()으로 가서 PHP에서 포맷팅을하면됩니다 ...

내 말은 ... & 시간을 변경하고 싶다고 말하면됩니다. 페이지에 표시됩니다 ... 디스플레이 조정을 위해 SQL을 수정해야한다는 느낌이 들지 않습니까?

내 2 센트

+0

모든 날짜 처리 코드가 포함 된 클래스가 있습니다. 로그인 코드에서 나는 DATE_FORMAT()을 사용하여 시간 형식을 지정하는 해당 클래스에서 함수를 호출합니다. 그래서 디스플레이 코드에 실제로 나타나지 않고 기분이 들지 않습니다. MySQL 날짜는 유닉스 타임 스탬프보다 읽기 쉽습니다. – Ali

+0

+1 "날짜의 형식은 디스플레이 결정"입니다. 실제로이 점에 대해 200 % 동의합니다. –

0

나는 동일한 작업을 수행하려고 노력하고 Google 검색에서 반환이 페이지를 가지고 있었다. 나는 21:00:00 동안 해결책을 일했다. 오후 9시

그래서 전체 코드가를 돌려 주위에 LOWER() 기능을 넣어 오후 9시

  • 을 반환 DATE_FORMAT(<field>,'%l.%i%p')를 사용

    • ; 나를 위해 OK 근무 DATE_FORMAT(<field>,'%l.%i%p')

      ...

  • 7

    은 다음 예제와 AM/PM 형식으로 날짜 & 시간 데이터를 표시 ...

    SELECT DATE_FORMAT(`t`.`date_field`,'%r') AS `date_field` FROM `table_name` AS `t` 
    

    SELECT DATE_FORMAT(`t`.`date_field`,'%h:%i %p') AS `date_field` FROM `table_name` AS `t` 
    

    또는

    가 제대로 작동하고 있습니다.

    관련 문제