1

PHPからのすべてが日付である場合にタイムスタンプを使用するdbフィールドから選択するにはどうすればよいですか?

$date = 2012-10-03;

何かのようなもの:

"select value from table where completed_date = $date" 

complete_dateの値だけが実際には「2012-10-0302:16:10」のようなものです。私が本当に欲しいのは、$ dateと同じ日のすべての値であり、クエリがタイムスタンプの時間的側面をほとんど無視することです。このクエリの場合。それは可能ですか?

ありがとう!

4

6 に答える 6

2

提供された日付がすでに有効なmysql日付スタンプであるとすると、次のように単純にすることができます。

SELECT ... WHERE DATE(completed_date)='2012-10-03'
于 2012-10-04T19:32:03.867 に答える
1

あなたはこのようなことを試す必要があります、

"select value from table where completed_date like '$date%'" 
于 2012-10-04T19:02:08.317 に答える
0

DATE_FORMATを使用してmysqlの日付をフォーマットします。

"select value from table where DATE_FORMAT(completed_date,'%Y-%m-%d') = $date" 
于 2012-10-04T19:01:53.983 に答える
0

データベースフィールドがUnixタイムスタンプの場合は、ここでFROM_UNIXTIME詳細を使用します。

データベースフィールド(col)がdatetimeタイプの場合は、SELECT ... WHERE col LIKE '2012-10-03%'

データベースフィールド(col)がdateタイプの場合、SELECT ... WHERE col = '2012-10-03'

于 2012-10-04T19:02:42.327 に答える
0

がvarcharではなくタイムスタンプフィールドの場合completed_date、次のように実行できます。

"SELECT value FROM table WHERE completed_date>=? AND completed_date<?"

そして、パラメータをバインドします。

$date="2012-10-03";
$start=date("Y-m-d G:i:s",strtotime($date));
$end =date("Y-m-d G:i:s",strtotime($date.' +1day'));
于 2012-10-04T19:04:14.513 に答える
0

スキーマの変更を必要としないものとして、coder1984の答えが好きです。ただし、これが通常データのクエリを行う方法である場合は、データベースに日付フィールドであるフィールドを追加することをお勧めします。

于 2012-10-04T19:09:44.560 に答える