2

SQL データベースにDateフィールドがあります。日付が現在の日付/システム日付と一致するファイル内にそれらのレコードのみを書き込みたい。

** には、2 つの日付を一致させるための SQL クエリが見つかりません。

??? の代わりに何が来るべきですか?

SELECT * FROM attendence where Date = ???

4

4 に答える 4

3

日時形式に依存

「2012-10-09 15:04:58」の場合

SELECT * FROM attendence where Date = CURRENT_TIMESTAMP

「2012-10-09」の場合

SELECT * FROM attendence where Date = CURRENT_DATE
于 2012-10-09T09:32:04.843 に答える
2

次のことも実行して機能しました。

SELECT * FROM attendence where Date = '"+System::DateTime::Now.ToString("yyyy-MM-dd") +"'

日付がデータベースにその形式で追加されたため、最後に形式が追加されます。

于 2012-10-09T09:40:26.760 に答える
0

mysqlデータベースとエンドユーザーの間にタイムゾーンの違いがない限り(c ++アプリケーションが別のタイムゾーンでmysqlデータベースをリモートでクエリする場合のように)、これは正常に機能するはずです。

SELECT * FROM attendence WHERE Date = CURDATE()

考慮すべきタイムゾーン要因がある場合は、エンドユーザーのシステム日付をクエリパラメータとして指定するか、エンドユーザーがどのタイムゾーンにいて使用するかをMySQLに通知する必要があります。

CONVERT_TZ(CURDATE(), from_tz, to_tz);
于 2012-10-09T09:29:01.640 に答える
0

これを試してください:

SELECT * FROM attendence where Date(Date) = NOW()
于 2012-10-09T09:29:55.257 に答える