나는 단지 JSON 문자열로 쿼리 결과를 보내는 PHP를 사용하여 API를 개발 중이다. 결과는 여러 테이블의 조합입니다. 그러나 필드 중 하나는 시간입니다. 이 테이블을 다른 테이블의 시간대 설정에 따라 다른 시간대로 변환해야합니다.시간대 계산. PHP 함수 대 MySQL 함수
Array ("Show_name" => "Billards",
"Show_type" => "Movie",
"Start_Time" => "2011-11-09 07:00:00",
"End_Time" => "2011-11-09 09:00:00",
"Open" => "Yes"
);
시작 시간과 종료 시간은 기본적으로 모든 기록을 위해 EST에 있습니다
다음은 현재 출력됩니다. 시간대 설정은 Timezone_ID, GMT_offset, DST_offset 필드가있는 다른 테이블에 저장됩니다. 이 설정에 따라 기본적으로 est_time 및 end_time이 각각의 시간대로 변환되어야합니다.
처음에는 쿼리 자체에서이 권리를 계산하기 위해 MySQL 함수를 작성하려고했으나 JSON 형식/필드가 변경되지 않습니다. 그러나 나는 PHP 함수에 비해 너무 느리다는 것을 알았다.
귀하의 경험에 근거하여 무엇을 제안합니까? - 단순히 쿼리에서 함께 계산하는 방법이 있습니까? - MySQL 기능이 PHP보다 우수한 성능을 제공합니까? - PHP 함수를 사용해야하는 경우이를 계산하기 위해 모든 레코드를 반복해야합니다. 시간대 레코드를 별도로 가져와야하는지 잘 모르겠습니다. 왜냐하면 JSON 응답의 형식/필드 수를 변경하고 싶지 않기 때문입니다.
더 좋은 방법이 있습니까?
당신은 UTC에서 데이터베이스에있는 모든 시간을 저장하거나 UTC는 당신이 그것을 조정해야 할 때 인생을 훨씬 쉽게 만들 것입니다 타임 스탬프 경우 다른 시간대. EST에서는 원하는 표준 시간대로 변환하기 전에 EST 오프셋 및 DST를 고려해야합니다. 그러나 그 변화를 만들기에는 너무 늦을 수도 있습니다. – drew010
@ drew010 예, 지금 시점에서 DB 스키마를 변경할 수 없습니다 .-( –
[CONVERT_TZ()] (http://dev.mysql.com/doc/refman/5.5/en/date-and)을 보았습니까? -time-functions.html # function_convert-tz)? – drew010