1
データをdatetimeに変換するVTS関数があります。 私の目的は、この特定のフォーマット(MM-DD-YYYY HH:mm)
でdatetimeを選択することです。ファイアバード日時フォーマット
TIMEカラム(Int64の)初期データ:
131473080013710000
131473080026060000
131473080039030000
VTS(列)機能(select VTS("TIME"))
20170816000001.3710000
20170816000002.6060000
20170816000003.9030000
必要結果(YYYY-MM-DD HHと変換:mm):
2017-08-16 00:00
2017-08-16 00:00
2017-08-16 00:00
私は試しました:select VTS("TIME", 'YYYY-MM-DD HH:mm')
。
にErrorMessage:function VTS could not be matched
「VTS機能」とは何ですか?とにかく、書式設定の値は、SQLステートメントではなく、クライアントによって行われるのが最適です。 – ain
'VTS(" TIME "、" YYYY-MM-DD HH:mm ")を選択してください - これは実際のクエリではなく、"
の特定のフォーマット(MM-DD-YYYYおよび必要な結果(YYYY-MM-DD) - あなたはどのようなフォーマットが必要ですか?文字列出力または日付出力 –
答えて
VTS機能以来は伝えテキストデータを返します(ただし、
CHARACTER SET NONE
は本当に脆弱であり、おそらく将来的に問題を引き起こすだろう!)あなたは今、そのテキストが何を意味するかに見ずに文字列関数とそのテキストを操作することができます。は、あなたが本当にしたい引用された多くのフォーマットのどの非常に明確ではありませんhttp://www.firebirdtest.com/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-functions-scalarfuncs.html
で文字列関数を参照してください。この特定のフォーマット(:MM MM-DD-YYYY HH)と
あなたが質問に二回、それを引用した私たちは、後者に固執するでしょう。
次の質問は、サーバーのテキストまたは日付を取得するかどうかです。 おそらく、ネイティブの日付値ではなく、SQLサーバー出力として書式付きテキストを使用したいとします。
次に、
'20170816000001.3710000'
のような値で3つのステップを実行する必要があります。ステップ1:
ステップ2:
ステップ3:
しかし通常はSQLサーバーでテキストに日付を変換するために、間違った考えでありますレベル。 通常、サーバーから平文のDate値を返します。アプリケーションで、その日付を任意のテキスト形式にフォーマットする必要があります。
出典
2017-10-24 10:40:15
フィードバックいただきありがとうございます。 日時フォーマットの順序はそれほど重要ではありません.YYYMMDDソリューションがあれば、簡単にDDMMYYYYに変換できます。 他のことは、私があなたに与えた数字で上に取り組んでいることですが、これは単なる例であり、何千もの検索レコードで同じことをするつもりはありません。 "VTSを選択(" TIME ")して、結果を日付時刻YYYY-MM-DD HH:mm:ssのように変換する必要があります – AA21
定数をVTS関数呼び出しで置き換えます。誰もがそれを知っているので、私はそれを強調しません。代わりに、停止した場所から届く場所に文字列を変換する方法を段階的に示します。サーバーからフォーマットされていない非文字列のネイティブ日付値を取得し、日付値を任意のテキスト表現にフォーマットするAPPLICATIONを使用します。 –
関連する問題