Change Google Cloud SQL CURRENT_TIMESTAMP time zon

2019-04-07 10:35发布

问题:

I'm using CURRENT_TIMESTAMP in Google Cloud SQL and according to Google, it returns the server's current time.

Currently, with the time that it returns, it looks like the server's at UTC -1 (i.e., in the Atlantic Ocean). This is not very helpful.

How do I change the timezone and have it display the right time (i.e., a time zone of my own choosing) whenever I call CURRENT_TIMESTAMP?

回答1:

There is a new way to to change Google cloud SQL time zone https://stackoverflow.com/a/29758598/4121388

Instructions: https://cloud.google.com/sql/docs/mysql-flags

  1. Go to the Google Developers Console.
  2. Create a new Developers Console project, or open an existing project by clicking on the project name.
  3. In the sidebar on the left, click Storage > Cloud SQL to show a list of Cloud SQL instances for the project.
  4. Open your instance and click Edit. If you need to create a new instance, click New instance.
  5. Scroll down to the MySQL Flags section.
  6. Choose flags from the drop-down menu and set their values.
  7. Click Save. You can check your flags under MySQL Flags on the overview page.


回答2:

Cloud SQL sets the system time as UTC.

You can set the timezone for an individual session with a statement like:

SET @@session.time_zone='-07:00';

You can use named (and daylight savings aware) timezones such as "US/Pacific" if you first set up the timezone table by running a system command like:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -h YOUR_INSTANCE_IP -u root -p mysql