sql >> Databáze >  >> RDS >> Mysql

Funkce Open Now specifická pro časové pásmo

  1. Přečtěte si o podporě časových pásem v MySQL a ujistěte se, že je vaše databáze mysql nakonfigurována s aktuálními tabulkami časových pásem. Pravidelně aktualizujte.

  2. Ke každému místu přiřaďte pojmenované časové pásmo IANA/Olson, například "America/Los_Angeles" nebo "Europe/London" . Viz seznam zde . Pokud máte zeměpisnou šířku/délku, můžete časové pásmo vyhledat pomocí jednoho z těchto způsobů .

  3. Použijte MySQL CONVERT_TZ funkce pro převod aktuálního času UTC na konkrétní zónu. Například CONVERT_TZ(UTC_TIMESTAMP(),'UTC','Asia/Tokyo')

  4. Použijte den v týdnu a denní dobu konvertovaného čas na kontrolu oproti dni a rozsahu v zadání místa.

Všimněte si také, že jiní mohou navrhnout použití přístupu pouze ukládání UTC do databáze nebo převedení všech hodnot na UTC před porovnáním s hodnotou „nyní“. Každý z těchto přístupů může v krajních případech selhat, protože den v týdnu UTC nemusí být nutně stejný den v týdnu jako v každém časovém pásmu.

Jeden další přístup, který bude práce, ale vyžaduje více úsilí, je předurčit konkrétní časy spouštění a zastavení UTC na určitou dobu v budoucnu (alespoň do dalšího, ale možná i dále). Poté můžete tento seznam naskenovat s časem UTC. To funguje lépe v měřítku, když máte tisíce nebo více jednotlivých položek ke kontrole. Ale v menších měřítcích se to obvykle nevyplatí.

Podobně můžete mít proces na pozadí, který pouze nastaví příznak „nyní otevřeno“ u každého záznamu, ale musel by neustále pracovat s vaší databází a nikdy byste nemohli kontrolovat jiné časy než „nyní“.




  1. vložte hodnotu html select formuláře do mysql databáze

  2. CHYBA:Nelze vytvořit soubor XX.csv:Neznámá chyba

  3. Nechápu, proč mi nefunguje SQL

  4. Rozdíl MySQL mezi dvěma řádky příkazu SELECT