SQL データベースにDateフィールドがあります。日付が現在の日付/システム日付と一致するファイル内にそれらのレコードのみを書き込みたい。
** には、2 つの日付を一致させるための SQL クエリが見つかりません。
??? の代わりに何が来るべきですか?
SELECT * FROM attendence where Date = ???
SQL データベースにDateフィールドがあります。日付が現在の日付/システム日付と一致するファイル内にそれらのレコードのみを書き込みたい。
** には、2 つの日付を一致させるための SQL クエリが見つかりません。
??? の代わりに何が来るべきですか?
SELECT * FROM attendence where Date = ???
日時形式に依存
「2012-10-09 15:04:58」の場合
SELECT * FROM attendence where Date = CURRENT_TIMESTAMP
「2012-10-09」の場合
SELECT * FROM attendence where Date = CURRENT_DATE
次のことも実行して機能しました。
SELECT * FROM attendence where Date = '"+System::DateTime::Now.ToString("yyyy-MM-dd") +"'
日付がデータベースにその形式で追加されたため、最後に形式が追加されます。
mysqlデータベースとエンドユーザーの間にタイムゾーンの違いがない限り(c ++アプリケーションが別のタイムゾーンでmysqlデータベースをリモートでクエリする場合のように)、これは正常に機能するはずです。
SELECT * FROM attendence WHERE Date = CURDATE()
考慮すべきタイムゾーン要因がある場合は、エンドユーザーのシステム日付をクエリパラメータとして指定するか、エンドユーザーがどのタイムゾーンにいて使用するかをMySQLに通知する必要があります。
CONVERT_TZ(CURDATE(), from_tz, to_tz);
これを試してください:
SELECT * FROM attendence where Date(Date) = NOW()