치명적인 도로 사고를 나타내는 점이있는 레이어가 있으며 "dates_14_D"필드에 날짜가 포함되어 있지만 유형은 문자열입니다. 이 문자열 필드를 날짜 필드로 변환하고 싶지만 확인 버튼이 비활성화되어 있습니다. 뭐가 문제 야? QGis를 사용합니다. 아래 그림을 봐
치명적인 도로 사고를 나타내는 점이있는 레이어가 있으며 "dates_14_D"필드에 날짜가 포함되어 있지만 유형은 문자열입니다. 이 문자열 필드를 날짜 필드로 변환하고 싶지만 확인 버튼이 비활성화되어 있습니다. 뭐가 문제 야? QGis를 사용합니다. 아래 그림을 봐
답변:
나는 이것을 전에 보지 못한 것에 놀랐다. 어쩌면 나는 명백한 것을 간과하고 있습니다 :)
다른 로케일을 사용하고 있지만 영국에서 dd / MM / yyyy와 동일한 날짜 형식을 사용하고 있습니다. QGIS 2.16.1에서 약간 다른 오류가 발생하지만 해당 날짜 형식이 마음에 들지 않습니다.
표현식 편집기의 함수 편집기 탭에서 짧은 Python 스크립트를 작성하여이 문제를 해결할 수 있습니다.
from qgis.core import *
from qgis.gui import *
from PyQt4.QtCore import QDate
@qgsfunction(args="auto", group='Python')
def parse_date_dmy(fromval, feature, parent):
return QDate.fromString(fromval, 'dd/MM/yyyy')
QGIS 3. #을 사용하고 PyQt4에 대한 오류가 발생하면 대신 PyQt5를 사용하십시오. 즉 3 행을
...
from PyQt5.QtCore import QDate
...
그런 다음 필드 이름을 사용하여 식을 입력 할 수 있습니다.
parse_date_dmy("mydate")
모든 것이 잘되면 다음과 같이 보일 것입니다 ...
@Steven Kay의 명확한 답변의 QGIS 3 업데이트
표현식 편집기의 함수 편집기 탭에서 짧은 Python 스크립트를 작성하여이 문제를 해결할 수 있습니다.
from qgis.core import *
from qgis.gui import *
from PyQt5.QtCore import QDate
@qgsfunction(args="auto", group='Python')
def parse_date_dmy(fromval, feature, parent):
return QDate.fromString(fromval, 'dd/MM/yyyy')
그런 다음 필드 이름을 사용하여 식을 입력 할 수 있습니다.
parse_date_dmy("mydate")
모든 것이 잘되면 다음과 같이 보일 것입니다 ...
2016 년 당시의 모습을 모르겠지만 QGIS 3.10부터는 표현식 편집기 또는 필드 계산기에서 QGIS의 사용 가능한 기능으로 구현되었습니다. 필드 계산 대화 상자의 오른쪽에있는 설명서는 다음과 같은 솔루션을 제공합니다.
to_date( "MyDateFieldNameWithDatesAsStrings" , 'dd/MM/yyyy' )
(공백은 선택 사항입니다) "확인"을 누르십시오. "형식"을 속성 테이블에있는 형식으로 조정하십시오. 예를 들어, 날짜가와 비슷한 07.3.03
경우 올바른 형식은 dd.M.yy
*입니다. 기호 m
는 "분"을 M
의미하고 "달"을 의미하므로 대문자에주의하십시오 .