MySQLデータベースにDATETIME
でセットアップされたテーブルがあります。私はこのテーブルでSELECT
をDATEまでに必要とし、時間を除外します。
特定の列がSELECT
に設定されている場合でも、日付と時刻をバイパスするだけでこのテーブルでDATETIME
を実行するにはどうすればよいですか?
現在は:
2012-01-23 09:24:41
このためだけにSELECT
を実行する必要があります:2012-01-23
SELECT DATE(ColumnName) FROM tablename;
MySQL DATE()関数 の詳細。
date_formatを使用できます
select DATE_FORMAT(date,'%y-%m-%d') from tablename
select DATE(time) from appointment_details
は日付のみに使用できます
または
select TIME(time) from appointment_details
は時間のみに使用できます
MYSQLには、 DATE_FORMAT(date、format) という関数があります。あなたの場合、選択ステートメントは次のようになります。
SELECT DATE_FORMAT(dateTimeFieldName,"%a%m%Y") as dateFieldName FROM table_name
MysqlのDATEおよびTIME関数の詳細については、 ここをクリック
使用してみてください
今日のために:
SELECT * FROM `tbl_name` where DATE(column_name) = CURDATE()
選択した日付:
SELECT * FROM `tbl_name` where DATE(column_name) = DATE('2016-01-14')
SELECT DATE(ColumnName)
を実行しようとしましたが、TIMESTAMP
列ではこれは機能しません† それらはUTCで保存され、ローカル日付に変換する代わりにUTC日付が使用されるためです。タイムゾーンの特定の日付にある行を選択する必要があったので、 この他の質問への回答 と この質問に対するバラスワミーバデマンの回答 を組み合わせて、これが私ですした:
DATETIME
として保存している場合SELECT DATE(ColumnName)
を実行するだけです
TIMESTAMP
として保存している場合タイムゾーンデータをMySQLに読み込む まだ行っていない場合。 Windowsサーバーについては、前のリンクを参照してください。 Linux、FreeBSD、Solaris、およびOS Xサーバーの場合:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
次に、クエリを次のようにフォーマットします。
SELECT DATE(CONVERT_TZ(`ColumnName`, 'UTC', 'America/New_York'))
次のように、クエリのWHERE
部分にこれを配置することもできます(ただし、その列のインデックスは機能しません)。
SELECT * FROM tableName
WHERE DATE(CONVERT_TZ(`ColumnName`, 'UTC', 'America/New_York')) >= '2015-02-04'
(明らかに、ローカルタイムゾーンをAmerica/New_York
に置き換えてください。)
†これの唯一の例外は、ローカルタイムゾーンがGMTであり、ローカル時間がUTCと同じであるため夏時間を使用しない場合です。
単にあなたができる
SELECT DATE(date_field) AS date_field FROM table_name
あなたはこれを試すことができます:
SELECT CURDATE();
以下を確認する場合:
SELECT NOW(); SELECT DATE(NOW()); SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');
時間がかかることがわかります。
$ dateがyyyy-mm-ddにあるSELECT * FROM Profiles WHERE date(DateReg)=$date
を試してください
または、SELECT * FROM Profiles WHERE left(DateReg,10)=$date
乾杯
DATE_FORMAT
を使用
select DATE_FORMAT(date,'%d') from tablename =>Date only
例:
select DATE_FORMAT(`date_column`,'%d') from `database_name`.`table_name`;
Select * from table_name where date(datetime)
SELECT DATE_FORMAT(NOW() - INTERVAL FLOOR(Rand() * 14) DAY,'%Y-%m-%d');
これは、「yyyy-mm-dd」形式で日付を取得するために使用できます。
この答えを試してください。
SELECT * FROM `Yourtable` WHERE date(`dateField`) = '2018-09-25'
時間列がタイムスタンプにある場合、このクエリを使用してそのタイムスタンプから日付値を取得します
SELECT DATE(FROM_UNIXTIME(time)) from table
この質問に実際に有効なソリューションを提供するために:
SELECT ... WHERE `myDateColumn` >= DATE(DATE_FORMAT(NOW(),'%Y-%m-%d'));
明らかに、NOW()関数を任意の日付または変数に変更できます。