9

この質問は何度も聞かれているように見えますが、私の質問に固有の答えが見つからないようです。

C#XMLパーサーによってXMLファイルから読み取られる変数があります。これは文字列であり、の形式はです"yyyy-MM-dd"。を使用してこの変数をデータベースに読み込みたいのですが、SQLこれを行うには、適切な日時形式である必要があります。残念ながら、の日時形式が見つかりません"yyyy-MM-dd"。私は何かが足りないのですか?

SQL可能であれば、接続を開く前に変数を日時に変換できるようにしたいと思います。

4

5 に答える 5

28

可能であれば、SQL接続を開く前に、変数を日時に変換できるようにしたいと思います。

DateTime result = DateTime.ParseExact("2012-04-05", "yyyy-MM-dd", CultureInfo.InvariantCulture);
于 2012-07-18T22:19:25.760 に答える
3

たぶんParseExact関数があなたを助けることができます。

DateTime dResult = DateTime.ParseExact("2012-07-18", "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
于 2012-07-18T22:25:04.483 に答える
1

LINQ to XMLを使用している場合は、要素または属性をDateTime次の場所にキャストするだけです。

DateTime date = (DateTime) element;

次に、パラメータ化されたSQLを使用してデータベースに挿入できます。アーロンの提案に反対します。可能な限り、データを最も自然な形式に保ちます。これは、バニラ.NETではですDateTime。データを意味のある表現で保持できる時間が長ければ長いほど、IMOは向上します。

LINQ to XMLを使用していない場合は、sminkとRieraのソリューションで問題ありませんが、可能であればLINQtoXMLを使用することを強くお勧めします:)

于 2012-07-18T22:27:11.107 に答える
1

SQL Serverでは、クエリ
SELECT CONVERT(VARCHAR(10)、GETDATE()、120)AS[YYYY-MM-DD]を使用できます。

于 2012-07-19T06:21:50.377 に答える
1

動作するかどうかわからない場合は、「TryParseExact」を使用できます。それが機能する場合、「成功」は真になります。このようにして、解析例外のリスクを冒すことはありません。

DateTime timestamp;
bool success = DateTime.TryParseExact("2015-12-25", "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out timestamp);
于 2015-12-25T20:58:29.507 に答える