2017-10-19 7 views
0

20171019から19/10/2017にデータを並べ替える方法を教えてもらえますか?VB.net並べ替えの文字列データ20171019から19/10/2017

20171019は、SQLクエリから文字列として取得されます。データ型はnvarchar(255)ですが、標準の日付形式で表示します。

文字列の各文字に何らかの形で位置(値)を割り当ててから並べ替えたり、VB内に書式設定ツールを組み込んでいますか?

このたびはお時間を頂き、誠にありがとうございます。

+0

あなたがデータベースから文字列として 'DateTime'を得るのはなぜ?なぜそれを 'DateTime'や' Date'として保存しないのですか? –

答えて

3

クライアント側では、文字列をDateTimeに解析する必要がある場合は、ToString(format)を使用して特定の形式を適用できます。しかし重要な質問はなぜあなたがそれを必要としているのか、あなたはDateTimeをあなたのデータベースの文字列とするのですか?なぜそれをDateTimeまたはDateとして保存しないのですか?

しかし、ここであなたが解析して変換する方法である:

Dim dt = DateTime.ParseExact("20171019", "yyyyMMdd", Nothing) 
Dim result = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture) 
+0

迅速な返信をありがとう。残念なことに、データベースはサードパーティのツールに由来しているので、私たちはその設計に悩まされているため、変更する必要があります。もう一度ありがとう、私はそれを行ってあげるよ。 –

0

あなたは正規表現でこれを行うことができます:

Dim dt as String = Text.RegularExpressions.Regex.Replace("20171019", "^(\d{4})(\d{2})(\d{2})", "$3/$2/$1") 
関連する問題