2017-02-14 65 views
-1

我在SQL SERVER中有一堆記錄,並且我遇到了其中一個字段的問題。格式化日期(以日期時間保存在數據庫中)

數據類型是日期時間。系統只插入一個沒有時間的日期,因此'1/2/2017' - 因此當它插入到SQL SERVER中時,它只會顯示爲1/2/2017 00:00:00。現在,我試圖做的就是像保存在數據庫中一樣顯示它。

我查詢數據庫,並像這樣顯示它...

If Not IsDBNull(dr("ReceivedOn")) Then 
     txtReceivedOn.Text = Format(dr("ReceivedOn"), "MM/dd/yyyy hh:mm tt") 
    End If 

我蒙面文本框的面具是liek這.....

00/00/0000 90:00 aa 

當它得到displayd在蒙面文本框是顯示日期和12:00 AM

1/2/2017 12:00:00 AM 

有沒有擺脫它,只顯示爲0的incorr代替等時間?不過,我想只看到一個12小時的時間,而不是24

+0

你的意思是你想把12:00 AM改成00:00:00嗎? – Ben

+0

只需更改HH – Steve

+0

@ben yes即時嘗試顯示00:00因爲12 AM是不正確的時間。這僅僅是幾百年的記錄。所有新的日期都保存在正確的時間 – BobSki

回答

1

您需要在DateTime Custom Date and Time strings幾個小時的格式說明從hh改變HH

If Not IsDBNull(dr("ReceivedOn")) Then 
    txtReceivedOn.Text = Format(dr("ReceivedOn"), "MM/dd/yyyy HH:mm tt") 
End If 

在MSDN你可以閱讀

「HH」自定義格式說明符(加上任意數量的附加「H」 說明符)表示小時爲從00到23的數字;即 是,該小時由零基24小時製表示,其自午夜以來的小時數爲 。一位數的小時格式爲 前導零。

請注意,對於這種格式,tt是沒有意義的。

+0

它顯示24小時時鐘 - 我需要它顯示AM/PM 12小時。我遇到的問題是,如果SQL SERVER顯示時間爲00:00:00,因爲只有一個日期被插入到datatime字段中 - 我的屏蔽文本框將其顯示爲12:00 AM - 我不想這樣做。我希望它只顯示日期和00:00:00。人們不喜歡軍事/歐洲時間。所有插入的新記錄都有時間戳,所以用hh而不是HH精確顯示 – BobSki

+0

然後就是MaskedTextBox的問題了?您可以將Mask屬性設置爲00/00/0000以支持DatePart,但我認爲該控件無法顯示時間部分,請讓我檢查一下 – Steve

+0

是的,我將此掩碼設置爲:00/00/0000 90:00 aa - 所以當我刪除tt並添加HH而不是hh時,它顯示它就像這樣1/2/2017 12:00 __。我完全刪除了面具,仍顯示相同的事情。 :( – BobSki

相關問題