2012-06-19 70 views
5

Tôi đã thử một số cách để truy xuất datetime2(3) tương đương với mã C# nhưng vô ích.DateTime.Now trong C# để sinh ra Datetime2 (3) trong kiểu dữ liệu SQL Server

Một trong số đó là như sau.

DateTime dt = DateTime.Now.AddMilliseconds(DateTime.Now.Millisecond); 

Tôi cần định dạng sau:

YYYY-MM-DD HH:MM:SS.FFF 

Nhưng từ mã ở trên, tôi nhận được kết quả sau

6/19/2012 11:15:08 PM 

Khi tôi cố gắng theo cách sau,

string myTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"); 
DateTime dd = Convert.ToDateTime(myTime); 

nó đang ném lỗi sau

Chuỗi không được nhận dạng là Ngày giờ hợp lệ.

Tôi chỉ cần ngày ở định dạng datetime2(3) thay vì bạn có thể đề xuất tôi lưu là nvarchar. Nhưng tôi cần sắp xếp các mục nhập theo số datetime2 chúng đã được cập nhật.

Có cách nào khác để giải quyết vấn đề này không?

+0

Có thể bạn nên thêm một số ví dụ và một số chi tiết khác. Làm thế nào để bạn "lưu trữ" ngày đó? Loại cột cơ sở dữ liệu là gì? –

+0

Bạn đang cố lưu ngày và giờ vào cột datetime2 (3) trong cơ sở dữ liệu? Nếu vậy, bạn làm thế nào? Với một 'DataSet' chuẩn, một tập dữ liệu đã nhập, một lệnh với một câu lệnh SQL được tạo động và giá trị được nối vào chuỗi, hoặc một lệnh với các tham số? –

+0

@ cả hai: Tôi muốn chèn DateTime.Now vào kiểu dữ liệu Sql của datetime2 (3). Bằng cách sử dụng NHibernate Fluent tôi muốn thực hiện nó. – viento

Trả lời

14
var format = "yyyy-MM-dd HH:mm:ss:fff"; 
var stringDate = DateTime.Now.ToString(format); 
var convertedBack = DateTime.ParseExact(stringDate, format, CultureInfo.InvariantCulture); 

DateTime là kiểu dữ liệu đại diện cho ngày và giờ và không lưu trữ thông tin định dạng. Mili giây luôn được lưu trữ trong DateTime. Thời gian duy nhất bạn cần chỉ định mili giây là khi chọn cách thể hiện DateTime như một loại khác, như một chuỗi.

+0

6/19/2012 11:39:10 PM Đây là những gì tôi nhận được như kết quả Kevin. – viento

+1

Khi bạn nói bạn "có 6/19/2012 11:39:10 CH", bạn thấy giá trị đó ở đâu? Trong trình gỡ rối? Console? Bất cứ điều gì đang hiển thị giá trị DateTime đang áp dụng định dạng. Mili giây vẫn được lưu trữ trong giá trị. –

+0

Ok tôi đã có điểm. Tôi đã nhìn thấy nó trong Console. Nhưng nó đã làm việc con người. Nó đã được lưu trong cơ sở dữ liệu. Cảm ơn. Tôi có thể đã cho u +1 nhưng tôi không có đủ điểm. Dù sao cũng cảm ơn bạn. – viento

Các vấn đề liên quan