sql >> Database >  >> RDS >> Mysql

Tijdzonespecifieke functie Nu openen

  1. Lees over tijdzone-ondersteuning in MySQL en zorg ervoor dat uw mysql-database is geconfigureerd met de huidige tijdzonetabellen. Werk regelmatig bij.

  2. Koppel elke locatie aan een benoemde IANA/Olson-tijdzone, zoals "America/Los_Angeles" , of "Europe/London" . Raadpleeg de lijst hier . Als je lat/lon hebt, kun je de tijdzone opzoeken via een van deze methoden .

  3. Gebruik de MySQL CONVERT_TZ functie om de huidige UTC-tijd om te zetten naar de specifieke zone. Bijvoorbeeld CONVERT_TZ(UTC_TIMESTAMP(),'UTC','Asia/Tokyo')

  4. Gebruik de dag van de week en het tijdstip van de omgerekende tijd om te vergelijken met de dag en het bereik in de invoer van de locatie.

Houd er ook rekening mee dat anderen kunnen voorstellen om alleen UTC in de database op te slaan, of om alle waarden naar UTC te converteren voordat ze worden vergeleken met de "nu"-waarde. Elk van deze benaderingen kan mislukken in randgevallen, aangezien de UTC-dag van de week niet noodzakelijk dezelfde dag van de week is als in elke tijdzone.

Een andere benadering die zal werk, maar kost meer moeite, is het vooraf bepalen van de specifieke UTC-start- en stoptijden voor een bepaalde tijd in de toekomst (in ieder geval tot de volgende, maar misschien verder). Dan kunt u deze lijst scannen met de UTC-tijd. Dit werkt beter op schaal, wanneer u duizenden of meer afzonderlijke items moet controleren. Maar op kleinere schaal is het de overhead meestal niet waard.

Evenzo zou u een achtergrondproces kunnen hebben dat alleen een "nu open"-vlag voor elk record instelt, maar het zou constant tegen uw database moeten werken en u zou nooit andere tijden dan "nu" kunnen controleren.




  1. Waarom houdt PostgreSQL niet van HOOFDLETTERS tabelnamen?

  2. mysql selecteer update

  3. mysql-query om de root-ouder te krijgen

  4. Hoe DB-fouten op te vangen in CodeIgniter PHP