この質問は何度も聞かれているように見えますが、私の質問に固有の答えが見つからないようです。
C#XMLパーサーによってXMLファイルから読み取られる変数があります。これは文字列であり、"yyyy-MM-dd"
の形式です。 SQL
を使用してこの変数をデータベースに読み込みたいのですが、これを行うには、適切な日時形式である必要があります。残念ながら、"yyyy-MM-dd"
の日時形式が見つかりません。私は何かが足りないのですか?
可能であれば、SQL
接続を開く前に、変数を日時に変換できるようにしたいと思います。
可能であれば、SQL接続を開く前に、変数を日時に変換できるようにしたいと思います。
DateTime result = DateTime.ParseExact("2012-04-05", "yyyy-MM-dd", CultureInfo.InvariantCulture);
たぶんParseExact関数があなたを助けることができます。
DateTime dResult = DateTime.ParseExact("2012-07-18", "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
LINQ to XMLを使用している場合は、要素または属性をDateTime
にキャストするだけです。
DateTime date = (DateTime) element;
次に、パラメータ化されたSQLを使用してデータベースに挿入できます。私は主張しますに対してアーロンの提案:可能な限り、データを最も自然な形式に保ちます。これは、Vanilla.NETではDateTime
です。データを意味のある表現で保持できる時間が長ければ長いほど、IMOは向上します。
LINQ to XMLを使用していない場合は、sminkとRieraのソリューションで問題ありませんが、可能であればLINQ toXMLを使用することを強くお勧めします:)
sQLサーバーではクエリを使用できます
SELECT CONVERT(VARCHAR(10)、GETDATE()、120)AS [YYYY-MM-DD]
動作するかどうかわからない場合は、「TryParseExact」を使用できます。それが機能する場合、「成功」は真になります。このようにして、解析例外のリスクを冒すことはありません。
DateTime timestamp;
bool success = DateTime.TryParseExact("2015-12-25", "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out timestamp);