-
Notifications
You must be signed in to change notification settings - Fork 5.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
types: Fix "Invalid time format" caused by daily saving time #13614
Conversation
/run-all-tests |
Codecov Report
@@ Coverage Diff @@
## master #13614 +/- ##
===========================================
Coverage 79.9157% 79.9157%
===========================================
Files 472 472
Lines 115583 115583
===========================================
Hits 92369 92369
Misses 15949 15949
Partials 7265 7265 |
/run-all-tests |
1 similar comment
/run-all-tests |
/run-all-tests |
LGTM |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
cherry pick to release-2.1 in PR #13624 |
cherry pick to release-3.0 in PR #13625 |
What problem does this PR solve?
Fix #13605
What is changed and how it works?
Some regions use daylight saving time.
In MySQL, it will throw the error "Invalid time format" when use the
datetime
between the advanced hour of daylight saving time (e.g. 2018/3/11 2:00~3:00 in Los Angeles). Actually, if the@@time_zone
sql variable is set to region where uses daylight saving time, the error occurred. But if the@@time_zone
is other region, no error occurred, even if the system time zone is the region where uses daylight saving time.But TiDB will throw an unexpected error "Invalid time format" when the timezone of system is in region where use daylight saving time.
Fix method:
When checking the time, we use the SQL variable
@@time_zone
instead of directly use the timezone of system.In details, In
checkTimestampType
function, we use theTimeZone
ofstatementContext
, instead of local timezone provided by Golang.Check List
Tests
Code changes
Side effects
Related changes
Release note