我正在使用PostgreSQL 9.3
我有一個名爲約會日期在表約會有錯誤的日期,如21117-03-04
我希望更新列中的所有行有一個默認的日期,例如,如果該列上的值是任何錯誤的日期,則爲1900-01-01
。我還沒有嘗試過任何解決方案。請幫忙。如果錯誤日期更新PSQL列與默認日期
0
A
回答
0
您可以使用以下步驟
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `MAKE_ACCURATE_DATE`()
BEGIN
DECLARE VAR_ID varchar(100);
DECLARE VAR_DATE DATE;
DECLARE VAR_FINISHED INT(11) DEFAULT 0;
DECLARE DATABASE_CURSOR CURSOR FOR
SELECT DATE(DATE_COLUMN) DATE_COLUMN,ID
FROM YOUR_TABLE_NAME;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET VAR_FINISHED = 1;
OPEN DATABASE_CURSOR;
GET_NEXTRECORD: LOOP
FETCH DATABASE_CURSOR INTO VAR_DATE,VAR_ID;
IF VAR_FINISHED = 1 THEN
LEAVE GET_NEXTRECORD;
END IF;
IF VAR_DATE =NULL THEN
UPDATE YOUR_TABLE_NAME SET DATE_COLUMN='1900-01-01' WHERE ID=VAR_ID;
END IF;
END LOOP GET_NEXTRECORD;
CLOSE DATABASE_CURSOR;
END$$
DELIMITER ;
OR Postgres的
CREATE OR REPLACE FUNCTION IS_VALID_DATE(S VARCHAR) RETURNS BOOLEAN AS $$
BEGIN
PERFORM S::DATE;
RETURN TRUE;
EXCEPTION WHEN OTHERS THEN
RETURN FALSE;
END;
$$ LANGUAGE PLPGSQL;
,並在如下上述功能的變化。
CREATE OR REPLACE FUNCTION MAKE_ACCURATE_DATE()
RETURNS void AS
$BODY$
DECLARE
RECORD RECORD;
COUNT INT;
BEGIN
COUNT=0;
FOR RECORD IN SELECT * FROM cpad.dtl_patientappointment;
LOOP
IF(!IS_VALID_DATE(RECORD.appointmentdate)) THEN
UPDATE cpad.dtl_patientappointment SET appointmentdate='1900-01-01' WHERE patientappointmentid=RECORD.patientappointmentid;
END IF;
END LOOP;
END;
$BODY$
LANGUAGE plpgsql;
並執行此行
SELECT MAKE_ACCURATE_DATE();
它將由一個並獲取從表中的你的記錄作爲 DATE(DATE_COLUMN)
是存在的,它會返回NULL如果日期申請條件之後不proper.So將用特定的ID
更新該記錄。
希望這會有所幫助。
+0
我的表看起來像這樣'SELECT patientappointmentid,interactionid,appointmentdate,appointmentreasonid, appointmentcomment, created,updatedated,deleteflag,userid, providerid,deletereason FROM cpad.dtl_patientappointment;'請更新光標 –
+0
我在postgres中出錯 –
相關問題
- 1. 日期選擇器與默認日期
- 2. 默認日期
- 3. 默認日期
- 4. 更改calenderextender默認日期
- 5. 如果日期與現有日期不重疊,則將日期範圍更新到日期列中
- 6. WP7默認日期
- 7. 如何控制UltraWebGrid控件中日期列的默認日期?
- 8. Javascript新日期()返回錯誤日期
- 9. 錯誤日期設置爲新日期()
- 10. 錯誤的日期插入日期列
- 11. 引導日期選擇器日期範圍和默認日期
- 12. 如果到達日期更長,則更新出發日期
- 13. 如果與日期
- 14. 更新日期,如果如果匹配
- 15. 錯誤的日期()結果
- 16. Cakephp 3.2更改默認日期格式
- 17. 更改默認的日期上的Python
- 18. MySQL更改默認會話日期
- 19. 更新行如果日期更近
- 20. jquery datepicker的默認日期
- 21. Matplotlib默認日期格式?
- 22. jQuery-UI datepicker默認日期
- 23. 默認日期值休眠
- 24. Activeadmin設置默認日期
- 25. mysql中的默認日期
- 26. Datepicker bootstrap默認日期
- 27. 覆蓋默認日期
- 28. JSP日期默認值
- 29. JQuery Datepicker - 無默認日期
- 30. SSRS日期參數默認
相關的解決方案:http://stackoverflow.com/questions/25374707/check-whether-string-is-a-date-postgresql –