2017-08-30 67 views
-1

我正在使用DB2數據庫。我有一個表,它有兩列如下:SQL Query將TIMESTAMP轉換爲字符串,同時選擇列

表名是sample: 下面是列:

CRDATTIM TIMESTAMP NOT NULL , 

RECORDCD CHAR(1) CCSID 37 NOT NULL; 

上表具有以下值:

CRDATTIM         RECORDCD 

2014-08-08 12:12:39.621060     O 
2014-08-27 07:01:46.814080     T 
2014-08-27 06:41:47.404080     T 
2014-08-27 07:14:47.871080     T 
2014-08-28 02:23:50.390080     T 
2014-08-28 06:27:58.298080     T 
2014-09-02 08:57:37.607080     T 

現在我想通過將CRDATTIM列下的值轉換爲字符串而不是TIMESTAMP來選擇表sample(select * from sample)中的所有列。

例如,CRDATTIM2014-08-08 12:12:39.621060列下的值應該返回爲2014-08-08-12.12.39.621060

同樣

2014年8月27日07:01:46.814080應該返回2014-08-27-07.01.46.814080

就如何實現這一目標的任何想法?

+1

在'CRDATTIM'字段的SQL中嘗試嵌套函數。使用'TO_CHAR'函數將時間戳記作爲一個字符串,然後應用'REPLACE'函數將字符串中的'space'替換爲'hyphen'。 –

+0

感謝您的回覆。上面的評論是非常有用的 –

+0

不知道誰投下了這個問題。我看不到任何有效的理由。 –

回答

1

Aniket V的建議幫助我找出解決方案。

嘗試在CRDATTIM字段的SQL中嵌套函數。使用TO_CHAR函數來獲取時間戳爲一個字符串,然後應用函數REPLACE用連字符

下面的查詢工作對我來說,時間戳轉換爲指定字符串格式替換字符串中的空間。

select TO_CHAR(CRDATTIM,'YYYY-MM-DD-HH24.MI.SS.FF6') as CRDATTIM ,recordcd from sample ; 
0

答案可能取決於你的DB2版本和操作系統平臺的DB2服務器,但試試這個:

select timestamp_format(crdattim,'YYYY-MM-DD-HH24.MI.SS.NNNNNN'),recordcd from sample 

您也可以嘗試TO_CHAR(),而不是TIMESTAMP_FORMAT()。