MySQL+PHPで日付指定SQLの結果がおかしい。

MySQL5.5とPHP Version 5.4.27(MySQL Client API version mysqlnd 5.0.10) でSQLのwhere句に日付を指定した場合に結果がおかしい。 具体的には次のようなSQLがおかしくなる。

SELECT count(*) from tblsample where dt >= '2014/01/01';
$hostname = "localhost";
$uname    = "username";
$passwd   = "userpasswd";
$dbname   = "sampledb";

if( !$conn = mysql_connect( $hostname, $uname, $passwd ) ){
	echo "mysql_connect failed.\n";
	exit;
}

mysql_select_db( $dbname, $conn );
mysql_select_db( $dbname, $conn );

$queryres = mysql_query( "SELECT count(*) from tblsample where dt >= '2014/01/01'", $conn );

while( $row = mysql_fetch_array( $queryres, MYSQL_ASSOC ) )
{
	var_dump( $row );
}

mysql_close( $conn );   // close

100件ほどはヒットするはずなのに、結果は3件だ。 phpMyAdminから同じSQLを実行してみると、100件以上の正しい結果が得られるので、PHP側でなにかがおかしいようだ。 ``` 原因は結局良くわからず、「mysql_set_charset(‘utf8’); 」を入れたら正しい結果が得られるようになった。

$hostname = "localhost";
$uname    = "username";
$passwd   = "userpasswd";
$dbname   = "sampledb";

if( !$conn = mysql_connect( $hostname, $uname, $passwd ) ){
	echo "mysql_connect failed.\n";
	exit;
}

mysql_set_charset('utf8');  // ←これを追加!!

mysql_select_db( $dbname, $conn );

$queryres = mysql_query( "SELECT count(*) from tblsample where dt >= '2014/01/01'", $conn );

while( $row = mysql_fetch_array( $queryres, MYSQL_ASSOC ) ){
	var_dump( $row );
}

mysql_close( $conn );   // close

なんでだろう。そのうちきちんと原因を理解したいが、