2


0

こんにちは、

これはよくある質問かもしれません。

SQL Server 2005データベースに日付列(InvDate)があり、2009-04-23 00:00:00.000のような値があります。 これをデータセットにフェッチしています。 今私はいくつかの出力Excelシート(私はOleDBを使用しています)に2009-04-23だけを保存する必要があります。 たとえそれがちょうど00:00:00.000であっても、私は時間が欲しくありません。

私はCONVERT(varchar(11)、InvDate、101)とParse.ToDateExact、そしてConvert.ToDateを試しました。

正しいステップを踏むことができません。

何か案は ?

ありがとう。

7 Answer


4


Excelに日付を書いている場合

Excel.Worksheetワークシート。
...
worksheet.Cells(row、column).Value = dateVar.Date; // dateVarワークシートの日付部分を返します。Cells(row、column).NumberFormat = @ "yyyy-mm-dd";


3


データが文字列としてある場合

DateTime.Parse(yourDataAsAString).ToString( "yyyy-MM-dd")


2


DateTime.Dateがあなたの答えです。これはオブジェクトの日付部分を取得します。 時間= 00:00:00.000

DateTime date = DateTime.Now; Console.WriteLine( "Date is" date.Date);


2


DateTimeメンバーインスタンスがある場合は、メソッド "ToShortDate()"関数を呼び出すことができます。


0


データセットにDateTimeがある場合は、2009-04-23 00:00:00.000も保持されます。 あなたの出力コードでこのオブジェクトをフォーマットすることができます:

date.ToString( "yyyy-MM-dd");


0


SQLクエリでは、次の構文を使用して、時刻/日付値の時刻部分を使用したくないことを指定できます。

SELECT DATE(timedatecolumn)WHERE whatever = whatever

あなたが本当に空想を得たいならば、あなたはDATE_FORMATを使用してそれをあなたが好きなようにちょうどそれを出力させることができます。 例えば:

SELECT DATE_FORMAT(タイム日付列、 '%W、%M%D、%Y')WHERE blah = blah

出力されます(日付が今日の場合)。

2009年4月23日木曜日

(MySQLの)日付フォーマットのさまざまなオプションは次のとおりです。

また、Excelの日付値(文字列としてではなく実際の日付として書式設定されている場合)は、実際にセルに表示されるものではありません。 これはMicrosoftの日付値(基本的にはMicrosoftのロジック内の日付と時刻に相関する整数)です。したがって、Excelに値を認識させて日付として処理させる場合(たとえば、以下に基づいて関数または式を実行する場合)古い値や特定の月の値など、値の時間部分を表示しないように列をフォーマットするだけです。

1時間後に発生したとマークされたイベントを別の方法で処理したくないために時間を短縮したい場合は、FLOOR関数を使用して値を切り捨てるだけです。

床(somedatecell、1)

値の時間部分は常に値の日付部分に続く10進数であるため、これは、たとえば39926.2725925926(今日の午前6:32:32)からちょうど39926(今日の真夜中)に切り捨てられます。

あなたはまだ時間部分を取り除くためにセルをフォーマットする必要があります、しかし今等しいすべての日付は実際には等しく、そして何時間または何分もずれていません。

しかし、単に日付を文字列として使いたい場合は、TEXT関数を使用してdatevalueをtextに変換する必要があります。

TEXT(somedatecell、 "mm / dd / yyyy")

あなたが超肛門になりたいのであれば(これは必要ではありませんが)、最初に日付の値を真夜中に丸めてから、次の式を使ってテキストに変換することができます。

TEXT(FLOOR(somedatecell、1)、 "mm / dd / yyyy")

あなたが日付フォーマットを使ってテキストをフォーマットしたいと言うときExcelは基本的にあなたのためにそれをします、しかしあなたが物事を余分にきちんと好きならばあなたは最初に切り捨てることができます。


0


String.Formatを使用して日付を希望どおりにフォーマットするか、DateTime.ToStringを使用します。

SQLでこれを処理するのは、必要以上に面倒です。 DateTime値の文字列表現をExcelに処理する前に、C#コードに変換してください。

あるいは、もしあなたが冒険好きなら、ExcelにDateTime値を与えてから、Excelスプレッドシートのセルにその値を正しく表示するためのフォーマットを追加することができます。 これはExcelにとっても値がまだ日付であるため、最も適切な方法です。