2017-04-14 54 views
0

什麼是我的自動化測試返回此查詢見下文:SQL:日期時間更改爲精確的字符串返回

Select visit_date 
from patient_visits 
where patient_id = '50' 
AND site_id = '216' 
ORDER by patient_id 
DESC LIMIT 1 

08:52:48.406 DEBUG執行:從patient_visits 其中選擇VISIT_DATE patient_id = '50' 和SITE_ID = '216' 通過patient_id DESC ORDER LIMIT 1 08:52:48.416 TRACE返回值:[(datetime.date(2017,2,17),)]

當我運行這在工作臺我得到

2017-02-17 

我如何使查詢返回這個而不是上面的datetime.date位。一些格式需要?

+0

你使用什麼樣的數據庫/方言?我認爲你應該改變「sql」標籤爲特定於數據庫的標籤,因爲你的日誌是指特定的實現 - 如「sql-server」,「postgresql」,「mysql」,「oracle」,...也許你需要添加一些關於您用來訪問數據庫的語言和數據庫提供程序或庫的信息。 – andreim

+0

其postgres,道歉。使用機器人框架DatabaseLibrary。 – user3303266

回答

0

從數據庫中得到的是python的datetime.date對象 - 這是由於db連接器驅動程序將數據庫記錄轉換爲對應的python對象。相信我,這比用純淨的字符串更好,用戶以後必須解析和投射。

成像這個查詢的結果存儲在一個變量${record},有幾件事情可以得到它,以你想要的形式。
首先,響應(幾乎總是)元組列表;在你的情況下,將永遠是一個單一的記錄,去的第一個列表的成員,其第一個元組成員:

${the_date}= Set Variable ${record[0][0]} 

現在{the_date}是datetime.date對象;至少有兩種方法來獲取其字符串表示。

1)隨着strftime()(在Python的方式):

${the_date_string}= Evaluate $the_date.strftime('%Y-%m-%d') datetime 

here's a link for the strftime's directives

2)使用實際上它是一個普通的對象,請訪問其屬性和構建的結果,只要你願意:

${the_date_string}= Set Variable ${the_date.year}-${the_date.month}-${the_date.day} 

請注意,這種方式,你肯定會放鬆月份的前導零和天。

相關問題