Informix DATE 形式
日付 1899-12-31 は、ゼロ (0) の内部日付表現に対応することに注意してください。つまり、Informix は内部的に DATE 値を 4 バイトの整数で格納し、1899 年 12 月 31 日からの日数をカウントするため、1 日目は 1900 年 1 月 1 日でした (そして 1900 年がうるう年ではないことがわかっているため)。 、60 日目は 1900-03-01 でした)。
その事実は、私があなたのテーブルに何があるかを心配させます. ただし、要求に応じてテーブル内のデータを DATE に変換できない場合は、通常、エラーが発生します。
あなたのテーブルスキーマは何ですか?
DB-Access と Info/Tables オプションを使用してスキーマを確立するか、DB-Schema を使用することをお勧めします。
dbschema -d dbase -t visit
DB スキーマの出力は、質問に追加するのに適しています。
「TODAY-365」と「TODAY」を使用したクエリ式は、選択するデータがある場合は正常に機能するはずです。
DBDATE 環境変数
文字列表現から日付に変換するために、環境変数 DBDATE を設定する必要がある場合があります。おそらく(アイコンから)英国に拠点を置いているため、DBDATEの値を次のように設定する必要がある場合があります。
export DBDATE=DMY4/
これは、日付が日、月、4 桁の年で構成され、優先セパレータとして「/」が使用されることを示しています。US 形式の場合、推定されるデフォルト値は通常 'MDY4/' であることを知っても驚かないでしょう。私は習慣的に「Y4MD-」を使用しているので、DATE 値は、ISO 8601:2004 の日付表記である DATETIME YEAR TO DAY と同じように見えます。(これには多くの利点があります。あいまいさがなく、単純なソート アルゴリズムがそのような日付を日付順にソートします。) IDS のバックグラウンドには実際に多くのメカニズムがあります (IBM Informix Dynamic Server - これは、あなたが使用している DBMS であると思います)。 Informix DBMS でもある代替手段がいくつかあります) など、2 桁の日付を含む文字列は通常正しく変換されます (ただし、あいまいで望ましくありません)、および '/' 以外の区切り記号
この質問に対する回答を改善するために必要な情報 - 第1版。
ここにあるものが役に立たない場合は、質問を編集して次の内容を含めることをお勧めします。
- テーブル スキーマ。
- 選択する必要があると思われるが、選択されていない数行 (2 ~ 4 行) のデータ。
- プラットフォームおよびバージョン情報。バージョンを IDS 11.50.FC4W1 の詳細レベルまで下げると役立ちます。時々それは重要です。もちろん、ほとんどの場合、最初の 3 桁が物事に影響を与えます。
テーブルが大きい (列が多い) 場合は、キー列を選択してみてください (vis_mod_dt
最も重要なものです)。理想的には、ディスプレイにスクロール バーは必要ありません。機密情報が含まれていないことを確認してください。
この質問に対する回答を改善するために必要な情報 - 第2版
私があなたに尋ねる質問に注意を払うならば、私はあなたを助けます. 私が尋ねる質問に注意を払わないなら、私はあなたを助けることができません. また、「回答」として情報を追加するのではなく、質問を編集してください。
テーブル スキーマとは からの出力は何ですか:
SELECT t.tabid, t.tabname, c.colno, c.colname, c.coltype, c.collength
FROM "informix".systables AS t, "informix".syscolumns AS c
WHERE t.tabid = c.tabid
AND t.tabname = "visit"
ORDER BY t.tabid, c.colno;
あなたは何から得ますか:
SELECT TODAY, TODAY-365 FROM "informix".systables WHERE tabid = 1;
環境変数 DBDATE が設定されていますか? もしそうなら、その価値は何ですか?
- 環境変数 CLIENT_LOCALE または DB_LOCALE が設定されていますか? もしそうなら、それらの値は何ですか?
- どのバージョンの Informix を使用していますか?
- どのプラットフォームで使用していますか?
- クエリの実行に使用している言語またはツール。
注: 上記のクエリをコピー アンド ペーストできない場合は、引用符で囲まれた「informix」を含める必要はない可能性があります。システム カタログの属性。ただし、記述されているように、クエリは現存する Informix データベース (OnLine 5.x、SE 5.x または 7.x、IDS 7.x、XPS 8.x、IDS 9.x または 10.x または 11) で機能します。 x - データベースの任意のモード (ログなし、ログあり、MODE ANSI)。一部の古いバージョンではサポートされていないことを除いて、私は JOIN 表記を使用しますが、それが問題になるには非常に古いバージョンを使用する必要があります。