2017-02-09 31 views
0

我有一個要求,可以在數據庫日期24小時之前生成電子郵件。我將所有日期以UTC格式保存到數據庫,並且註冊用戶來自不同的時間所以我怎麼寫一個查詢來在24小時前取回記錄,根據他們各自的時區向用戶發送電子郵件。任何幫助,將不勝感激。根據用戶時區在24小時之前安排電子郵件時區

+0

「24小時前」是什麼意思?之前_什麼? – arkascha

+0

你想看看「排隊系統」或「隊列管理系統」。這種解決方案基本上是通過在週期性基礎上檢查應有的作業來處理數據庫中的任務條目。 – arkascha

+0

基本上我需要一個查詢從某個x表中獲取記錄,這些記錄與用戶時區有24小時的時差 – krishnakanth

回答

0
  1. 使用TIMESTAMP數據類型,而不是DATETIME數據類型。 TIMESTAMP s總是以UTC時間存儲在MySQL中。
  2. 當您爲特定用戶建立會話時,請在存儲或檢索TIMESTAMP值之前,使用SQL命令(如SET time_zone = 'Asia/Kolkata';)設置用戶的時區。從表格中檢索時,它們會自動轉換爲當前時區。同樣,它們將在存儲時轉換爲UTC。
  3. 您可以使用像​​這樣的查詢查找記錄,並使用結果集來發送電子郵件或執行任何您喜歡的操作。

我不知道如何確定用戶的時區設置。許多系統使其成爲用戶偏好。但您需要在tz database format中獲得。

+0

實際上,我們正在向用戶提供下拉菜單,以選擇他的時區。當記錄插入任何表格時,我們將其保存爲UTC格式。我們正在使用時區顯示日期。 – krishnakanth

相關問題