programing

시간대 변환 시 필터 간 mysql 선택

randomtip 2022. 11. 22. 21:56
반응형

시간대 변환 시 필터 간 mysql 선택

제가 아직 찾지 못한 질문을 복제하고 있다고 말해주세요.제 질문은 이렇습니다.

UTC에 저장된 모든 DateTime 열이 있는 DB를 가지고 있습니다.이 작업을 수행할지 여부를 알고 싶습니다.

select CONVERT_TZ(event.startingTime,'UTC', city.timezone) as startingTime
left join city on event.cityid = city.id 
where startingTime between '2017-01-01 00:00:00' and '2017-01-01 23:59:59'

처리된 타임존에 적용되는 필터 사이입니까?예를 들어 UTC 시각으로 23:00에 시작하는 이벤트가 있지만 도시는 GMT+2입니다. 해당 이벤트는 나열됩니까?(DB내의 「원시」데이터는 23:00이므로, 거기에 따라서 표시됩니다만, 타임 존과 함께 처리하면 다음날의 1:00이므로, 다른 것과 같이 표시되지 않습니다).

테스트를 해봤더니 필터가 가공 전 '원시' 데이터 중 하나였던 것 같아서 여기서 물어봅니다(mysql 버전은 10.0.21-MariaDB-1~wheezy).

Suere가 되기 위해 테스트를 만들고 시도할 수 있습니다.

select CONVERT_TZ(event.startingTime,'UTC', city.timezone) as startingTime
left join city on event.cityid = city.id 
where startingTime 
between CONVERT_TZ('2017-01-01 00:00:00','UTC', '+2:00') 
and CONVERT_TZ('2017-01-01 23:59:00','UTC', '+2:00')

변환을 에 넣는 경우where올바르게 필터링하는 절

다음 이름으로 저장TIMESTAMP,것은 아니다.DATETIME그 후, 취득시에, 클라이언트에 지정된 타임 존에 따라서 날짜와 시각이 변환됩니다.필요 없다CONVERT_TZ.

언급URL : https://stackoverflow.com/questions/44246122/mysql-between-filter-on-convert-timezone-select

반응형