2017-08-31 20 views
1

の地域datetimeの形式を取得します。Delphi7:SQLサーバーシステムの日付と時刻の形式を取得

ここではDelphi7を使用しています。

サーバーの地域日付形式が(たとえば)yyyymmddで、クライアントのSQLサーバーがmm/dd/yyyy(または他の有効な日付形式)の場合、適切な日付形式が含まれている必要があります。

注:私は MSSQLのデフォルトの形式を設定し、あまりにも、サーバーの地域の日付フォーマットを読み込みますdelphi7で書かれたコードを持っています。また、サーバーの地域日付形式をMSSQL日付形式に変換します。あなたが何をすべきか、私の意見では

+3

いいえ、クエリにはテキスト値ではなくバインド可能なパラメータが含まれている必要があります。 – Victoria

+0

私は** delphi **で書かれたコードを持っています。これはMSSQLのデフォルトフォーマットを設定しています。これは、サーバーの地域日付形式をMSSQL日付形式に変換します。 –

+5

私はまだテキスト値で動作する本当の理由が不足しています。なぜ、テキストで表された日付と時刻の値を持つSQLコマンドを作成したいのですか? – Victoria

答えて

2

私のサーバーの地域の日付形式がある場合(例)YYYYMMDDとクライアントの SQLサーバーは、YYYY/MM/DD(またはその他の有効な日付形式をしています)クエリに適切な日付形式が含まれている必要があります。

自分では難しくなっています。
作成するクエリは、クライアントマシンまたはSQLサーバーの地域形式がどのように設定されているかについては何も気にする必要はありません。
地域の設定に関係なく、SQL Serverは常に理解できる言語に依存しない形式があります。

あなたは日時のためにあなたが本当にテキストでクエリを構築したいとき、日付の
"YYYYMMDD"を使用するよりも、だからここhttp://www.karaszi.com/SQLServer/info_datetime.asp#DtFormatsInput

それらを見つけると、"YYYYMMDD hh:mm:ss" EX(「20170831 14時23分05秒」)することができます。
これ以上フォーマットを気にする必要はありません。

質問にはパラメータを使用する方がよいでしょう。

+0

...それは私のために働いた。ありがとうございました。 –

+0

問題なし、うれしい – GuidoG

0

は、クライアントのサーバーのための標準フォーマットがある知ってもらうであり、それは標準だならば、異なる変数すなわちない単一のテキスト/番号の形式「YYYYMMDD」であなたの日付を確認します。それぞれに異なる変数を使用します。書式を読んで互いを一致させます。

上記が問題の場合は、これを試してください。

select SUBSTRING(Date,0,CHARINDEX('/',Date,0)) as Splitted  

(この日に、クライアントの形式である)

それとも

Month=SUBSTRING(Date,0,2) 
Date=SUBSTRING(Date,3,2) 
Year=SUBSTRING(Date,6,4) 

次に、あなたが望む任意の形式で日付を表示。 「:」や「/」

は今の部分文字列を作る

+0

を読んでください。異なる地理的な場所に異なるクライアントがあります。私たちが得る単一の日付形式ではありません。 –

+0

同じアプローチを使用すると、日付の場所とフォーマットに基づいてクエリを分離できます。 –

+0

これは私の主な質問です。「delphi7コードを使用してSQL Serverの地域日付形式を取得するにはどうすればよいですか? –

0

全域がエリア=「ABC」

その後の検索と同じ形式 選択*フォームデータを持っていると仮定して、このような何かを試してみてください":"または "/"で区切られ、a、b、およびc変数を得るテキスト。

私は同じ書式のacroosを仮定しているので、> 12の場合は2桁、bの場合は2桁、<の場合は12桁、cの場合は4桁です。 私たちが2001年1月1日にそれから何かを考えると、

このように、私は一様な書式を持つ同じ場所からすべての腸のことを前提としています。そして、すべての騎手をチェックし、すべての条件が満たされているかどうかをチェックして、確実なショットの回答を得てください。

データベースのリアルタイムタイプを処理する場合は、今日の日付で比較してください。、

変換(varchar型、DOB:

0

このクエリでは、現在のセッションに使用される日付フォーマット(その言語設定に@@言語ポイント)

Select DateFormat 
From sys.syslanguages 
Where name = @@Language 
+0

お試しいただきありがとうございます。しかし、これは、サーバーの地域設定に日付をキャストします、私はそれがSQLサーバーの形式の形式である必要がありますしたいです。 –

+0

SQL Serverの設定から形式を取得するための回答が変更されました。 –

0

は、クエリでは、このようないくつかのことを試してみてくださいを返します。より「生年月日」など103)

+0

私が望むのは、実行時にSQLサーバーの日付形式を取得することです。これは私を助けません。 –

関連する問題