0

次の地域設定(Delphi7およびPostgreSQL9.0)を必要とするアプリケーションに取り組んでいます。

   1. DateSeparator:='/';
   2. TimeSeparator:=':';
   3. ThousandSeparator:=',';
   4. DecimalSeparator:='.';
   5. ShortDateFormat:='MM/dd/yy';
   6. ShortTimeFormat:='hh:mm:ss';

システム全体ではなく、アプリケーションに対してのみ地域設定を変更する必要があります。

フォームのOnCreateで、上記のセパレーターを設定しました。現在のシステムセパレーターは次のとおりです。

   1. DateSeparator='|';
   2. TimeSeparator='|';
   3. ThousandSeparator='|';
   4. DecimalSeparator='|';

(これはテスト用です。)

これでPostgresに、アプリケーションに表示する日付を取得するテーブルがありますが、どういうわけか、dateseparatorが機能していないようです(label1に見られるように)!

ここに画像の説明を入力してください

画像を確認してください。

ここに画像の説明を入力してください

テーブルから日付を取得するためにクエリを実行します

                    Label1.Caption:=(Fields(1).Text);
                    Label2.Caption:=datetostr(Fields(1).Data) ;

クエリは

 select min(dat), max(dat) from diary where survey in (2008401) and event not in ('E','C','R') and region=6100;

.dataが.textdateseparatorと日付セパレーターが異なるとすると、同じ日付になります。なぜこれが発生するのですか?

label1.caption(画像に示されているように)地域設定が適用されないのはなぜですか?

4

2 に答える 2

1

DateToStrShortDateFormat出力形式として使用します。MM/dd/yy最初はセットから変更していません。変更しただけDateSeparatorです。

しかし、なぜあなたが使いたいのかについて私は混乱しています(Fields(1).Text)(そうですか?フィールドの添え字の[]の代わりに括弧を使用しますか?)。

画面イメージから表示されるように、DBが|日付区切り文字として使用するように構成されている場合、なぜ使用しているのDateToStrですか?.Text取得しようとしている形式で情報を取得しているようです。

于 2011-12-08T13:46:43.257 に答える
1

あるサイトで見つけた ので、適切な形式を取得するためにここにリンクの説明を入力してください。

select to_char(min(dat),'mm/dd/yy'), to_char(min(dat),'mm/dd/yy') from diary where survey in (2008401) and event not in ('E','C','R') and region=6100;

これにより、希望する形式で適切な結果が得られました

于 2011-12-09T07:27:26.600 に答える