聲明: 20-12-2016
和31-12-2016
之間的遊樂時間延遲一天。我如何爲此編寫SQL查詢?SQL向兩個值之間的所有日期添加1天
我目前有:
UPDATE Rides
SET (SELECT * FROM Rides WHERE Date BETWEEN '20-12-2016' AND '31-12-2016') = [SOMETHING]
聲明: 20-12-2016
和31-12-2016
之間的遊樂時間延遲一天。我如何爲此編寫SQL查詢?SQL向兩個值之間的所有日期添加1天
我目前有:
UPDATE Rides
SET (SELECT * FROM Rides WHERE Date BETWEEN '20-12-2016' AND '31-12-2016') = [SOMETHING]
此作品在甲骨文:
UPDATE rides
SET date_field = date_field + 1
WHERE date_field BETWEEN '2016-12-20' AND '2016-12-31';
我指的是外地來更新爲date_field
,因爲它是一個不好的做法,名稱字段/列有保留關鍵詞。
您可以使用Oracle
如下:
Update Rides
Set Date = Date + 1
Where Date Between '2016-12-20' And '2016-12-31'
訣竅。謝謝:) –
請不要使用字符串文字作爲日期值。 Oracle會用'NLS_DATE_FORMAT'作爲格式掩碼隱式調用'TO_DATE()' - 如果這不匹配,則查詢將失敗。更糟糕的是,'NLS_DATE_FORMAT'是一個會話參數,因此任何用戶都可以爲其會話更改它,然後查詢可以中斷該用戶(併爲其他用戶工作),而無需更改查詢文本(使其非常難以調試) 。 – MT0
您正在使用什麼數據庫管理系統? (SQL Server?MySQL?Oracle?其他?) – Siyual
如果這是mysql,日期是完全錯誤的,並且不起作用。 「日期數學」僅適用於使用「yyyy-mm-dd」格式的日期。並且您無法爲查詢分配值。您只能從查詢中提取值。 –
我正在使用oracle抱歉忘記提及 –