0

私はdatetime畑を持っています。このフィールドには、現在の日付が次の形式で手動で挿入されます。

30/05/2013 0.00.00

このプロセスを自動化します。だから私は関数から現在の日付を取得してGETDATE()関数で解析しようとしましたが、これはターゲットの宛先としてCONVERT()のみ機能しますが、私が言ったように: まだ必要です. 私に何ができる?varchardatetime

4

2 に答える 2

3

日時はすべて、同じユニバーサル形式で保存されます。次に、それをレポートまたはアプリケーションに戻し、ユーザーのロケールに従ってフォーマットするか、独自に指定したフォーマットに応じてフォーマットします。

日時フィールドまたはオブジェクトに形式がありません。

現在の日付を日時フィールド (時間部分を除く) に挿入する場合は、次を使用します。

insert into [MyTable] ([DateField])
values (cast(floor(cast(getdate() as float)) as datetime)

これにより、時、分、秒が「0」にリセットされます

日付パラメーターを挿入する場合は、次を使用できます。

cast(floor(cast(@dateParam as float)) as datetime)

結果セット内でのフォーマット方法を変更したいだけの場合は、次を使用できます。

SET DATEFORMAT DMY

ステートメントの先頭で、それを varchar としてキャストするときはいつでも、フォーマットを指定する必要はありません。

データベースは日付をフォーマットするべきではないことを忘れないでください.UIはこれを処理する必要があります.

于 2013-05-30T08:49:09.967 に答える
0

時間/分なしで現在の日付を保存するには、通常これを使用します。

CONVERT(DATETIME, CONVERT(CHAR(10), GETDATE(), 102), 102)
于 2013-05-30T08:59:25.890 に答える