簡體   English   中英

如何從日期時間格式的字段中顯示AM或PM的時間?

[英]How do i show just the time with AM or PM from a field that is a datetime format?

我在SQL中有一列數據,當前采用日期時間格式。 如果需要,可以更改它。 我需要只顯示一天中的時間,到十分之一秒,同時連接AM或PM。 我不希望在這個例子中顯示日期。

因此,作為一個例子,我需要'11:45:59.8 AM'而不是'1900-01-01 11:45:59.800'。
此外,這不是當前的“getdate”時間。 它來自我稱之為“時間”的數據領域,我在網上看到了各種各樣的轉換格式,但沒有人會為我提供這些。

謝謝!!!!

在我的評論中,我建議你不要這樣做。

SQL Server是一個數據存儲的地方,為了顯示目的而轉換數據通常會模糊可能會讓您困擾的線條。 (一個例子;如果你將來的那個時間作為一個時間在未來的其他地方怎么辦。你要再從一個字符串轉換回來嗎?)

如果它是必要的,那么你必須自己做一些格式化。

SELECT
  RIGHT(CONVERT(VARCHAR(26), GETDATE(), 109), 14)

或者,更麻煩......

SELECT
  DATEPART(HOUR, GETDATE()) + ':' +
  DATEPART(MINUTE, GETDATE()) + ':' +
  DATEPART(SECOND, GETDATE()) + '.' +
  DATEPART(MILLISECOND, GETDATE()) +
  CASE WHEN DATEPART(HOUR, GETDATE()) < 12 THEN 'AM' ELSE 'PM' END


我說了嗎? 你最好在客戶端做這件事;)

重命名您的表字段, Time是一個保留字,維護是一件痛苦的事。 如果您想要毫秒精度,請確保使用新的datetime2數據類型。

要格式化時間部分使用:

SELECT CONVERT(TIME, [Time]) FROM [Your Table]

如果您只想在這段時間后使用三位數,您可以使用:

SELECT CONVERT(TIME(3), [Time]) FROM [Your Table] 

我想如果您想要使用HH:MM格式,這將有效

SELECT
  RIGHT(CONVERT(VARCHAR(26), GETDATE(), 117), 14)

您還可以參考此頁面以獲取更多格式

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc36271.1570/html/blocks/X41864.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM