スレッド表示 | フラット表示〕 全トピック 920 件中 736 番目 次≫ ≪前

SELECT文 日付の範囲指定が効きません

created: 2003-11-19 10:14 | modified: 2003-11-19 13:54 | reply: 6

[1040] SELECT文 日付の範囲指定が効きません

user: たろー | created: 2003-11-19 10:14
お世話になります。

通常のSQL(ACCESS)は下記のようになるかと思いますが
SELECT Sum(日別売上) AS 合計 FROM 売上
WHERE 日付 Between #1/1/2003# And #1/10/2003#;

SQL文を連結するのがよくないのか日付の範囲指定が上手く出来ません。
SELECT bukncode,buknname, FROM TESTmast WHERE king >=500000 AND king <=10000000 AND kubn = 'O' AND tate = 'AA' AND (BETWEEN YMD 2000-01-01 AND 2005-01-01) AND kubn1 = 'S'

2001・08・01のデータが抽出されません。
このようにしているのですが日付の範囲指定ご存知でしたら教えて下さい。
最初は king >=500000 AND king <=10000000 ように条件式で括っていました。
reply: 1041 返信 編集 削除

[1041] その2

user: たろー | created: 2003-11-19 10:27
ACCESSで検証したところ
YMD BETWEEN #2000-01-01# AND #2005-01-01# とYMDとBETWEENを入れ替えて実行すれば抽出されますが PHPでは構文同じ物でも修正後下記のようにエラーが表示されます。

Query(Select) error = You have an error in your SQL syntax near '' at line 1
Parent: 1040  reply: 1042 返信 編集 削除

[1042] その3

user: たろー | created: 2003-11-19 11:02
過去スレにあるようにその2で構文エラー出ていますが、コピペしてAccessのSQLで動作させると正しく表示できます。
Parent: 1041  reply: 1044 返信 編集 削除

[1044] ???データベース

user: ゆうじ | created: 2003-11-19 12:21
今お使いのデータベースが何なのかわかりません。

基本的な情報が不足しているように感じます。
まずはお使いのデータベースソフトの
マニュアルをご覧いただくことをオススメします。
MySQLならばこのあたり。
http://web.kuicr.kyoto-u.ac.jp/manual/mysql/manual.ja_Date_and_time_functions.html#Date_and_time_functions


# まったくの余談ですが、
# 「通常のSQL」といわれて私が連想するのは、「OracleのSQL」です。
# 同じSQLと呼ばれるものでも、
# データベースソフトが違えばSQLも異なります。
Parent: 1042  reply: 1045 返信 編集 削除

[1045] データベースですが

user: たろー | created: 2003-11-19 12:36
ゆうじさん 大変お世話になります。

SQLはパソコンでApatch+PHP4+MYSQLを使用しています。

SQL文の構文等検証用(若干違いはあります)にマイクロソフトAccess2002を使用しています。 マイクロソフトSQLServer2000と互換有り(http://www.seshop.com/detail.asp?pid=3660

AccessはOracleやSQLSeverと一緒の類かと思います。現に今はMYSQLをODBC接続していますので・・・。
データ内容を見るのに、MYSQLをODBC接続(SQLであればどれでも接続可)してエクセルのように内容を確認しながら検証しています。
クエリーを使用してODBC経由での更新も可能ですが


今回は、MYSQL+PHPで日付の範囲抽出を行おうと思ったらエラーで次へ進みません。

日付の場合は 両サイドを##で囲む必要はありますよね?

日付(型)の場合大なり小なりで条件式をつくっても抽出できないの・・・・。
Parent: 1044  reply: 1046 返信 編集 削除

[1046] 補足です

user: たろー | created: 2003-11-19 12:39
日付(型)の場合大なり小なりで条件式をつくっても抽出できないの・・・・。

途中で送信ボタンをおしてしまいました。すみません
    ↓

日付(型)の場合大なり小なりで条件式をつくっても抽出できないので・・・・。
マニュアルを見ても詳しくサンプルが掲載されていなく
抽出でよく使用するかと思いPHPで例文があればいいなと思いました。
Parent: 1045  reply: 1047 返信 編集 削除

[1047] 自分で確かめはしないんですか?

user: ゆうじ | created: 2003-11-19 13:54
> 日付の場合は 両サイドを##で囲む必要はありますよね?

ありません。

> 日付(型)の場合大なり小なりで条件式をつくっても抽出できないの・・・・。

出来ます。


先に示したMySQLマニュアルに、
日付を#で挟むようにとは書いてませんでした。
ホントにご覧いただいたのか疑問です。
同じような質問を繰り返えしされる前に自分で確かめてください。


例)LOTO6 Checker のテーブルから、
2003/10/1 ? 2003/10/30 までのデータを抽出する。

select * from loto6 where Date >= '2003-10-01' AND Date <= '2003-10-30'
Parent: 1046  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 736 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑