programing

"string"을 "time zone 없는 타임 스탬프"로 변환하는 방법

lovejava 2023. 3. 20. 21:11

"string"을 "time zone 없는 타임 스탬프"로 변환하는 방법

Postgresql은 처음이고 WCF 서비스를 사용하고 있습니다.
코드 스니펫은 다음과 같습니다.

$.ajax({
    url: '../Services/AuctionEntryServices.svc/InsertAuctionDetails',
    data: JSON.stringify({ "objAuctionEntryEntity": {
        "AuctionNO": '',          
        "AuctionDate": $('[Id$="lblAuctionDateVal"]').text(),
        "TraderID": $('[Id$="ddlTraderName"] option:selected').val(),
        "Grade": $('[Id$="ddlGrade"] option:selected').val(),
        "Varity": $('[Id$="ddlVarity"] option:selected').val(), 
        "QuntityInAuction": $('#txtQuantityForAuction').val(),
        "AuctionRate": $('#txtAuctionRate').val(),
        "BrokerID": a[0],
        "IsSold": $('#chlIsSold').is(':checked'),
        "CreatedBy": $.parseJSON(GetCookie('Admin_User_In_Mandi')).UserID,
        "UpdatedBy": $.parseJSON(GetCookie('Admin_User_In_Mandi')).UserID,
        "CreationDate": GetCurrentDate().toMSJSON(),
        "IsActive": true,
        "AuctionTransaction": arrAuctionTransaction,
        "MandiID": $.parseJSON(GetCookie('Admin_User_In_Mandi')).MandiID,
        "FarmerID": _ownerid,
        "AuctionNO": _auctionno,
        "AmmanatPattiID": _ammantpattiid,
        "ToTraderID": b[0],
        "ToTraderName": $('#txtOtherBuyerNameEN').val(),
        "ToTraderName_HI": $('#txtOtherBuyerNameHI').val()
    }
}),
    type: 'POST',
    contentType: 'application/json',
    dataType: 'json'              
});

여기:

$('[Id$="lblAuctionDateVal"]').text() = "20/8/2013 14:52:49" 

그리고 이 필드의 데이터 유형은timestamp without time zone.
이 문자열을 변환하는 방법timestamp without time zonedata type?

의 문자열 표현timestamp(=timestamp without time zone)는 로케일 설정에 따라 달라집니다.따라서 데이터 오류 또는 Postgres에서 예외가 발생하는 애매한 문제를 피하기 위해 다음 두 가지 옵션을 사용할 수 있습니다.

1) ISO 8601 형식을 사용합니다.ISO 8601 형식은 모든 로케일 또는 설정에서 동일하게 동작합니다.

'2013-08-20 14:52:49'

사용 사례에 따라 컨텍스트에서 데이터 유형을 가져올 수 없는 경우 문자열 리터럴을 명시적으로 캐스팅해야 할 수 있습니다.

'2013-08-20 14:52:49'::timestamp

2) 문자열을 다음과 같이 변환합니다.timestamp일치하는 템플릿 패턴과 함께 사용:

to_timestamp('20/8/2013 14:52:49', 'DD/MM/YYYY hh24:mi:ss')

이 값은 반환됩니다.timestamptz(현재 시간대 설정을 전제로 합니다).일반적으로 (과제의 경우와 같이) 그에 따라 유형이 강제됩니다.위해서timestamp즉, 타임오프셋이 잘리고 예상값이 표시됩니다.다시 말씀드리지만 대상 유형을 컨텍스트에서 파생할 수 없는 경우 다음과 같이 명시적으로 캐스팅해야 할 수 있습니다.

to_timestamp('20/8/2013 14:52:49', 'DD/MM/YYYY hh24:mi:ss')::timestamp

그러면 시간 오프셋이 제거되기 때문에 예상 값이 됩니다.또는 를 사용합니다.AT TIME ZONE원하는 시간대를 사용하여 구성합니다.

to_timestamp('20/8/2013 14:52:49', 'DD/MM/YYYY hh24:mi:ss') AT TIME ZONE 'UTC'

목표 시간대는 현재와 동일하지만timezone설정, 변환은 이루어지지 않습니다.그렇지 않으면 결과 타임스탬프가 그에 따라 바뀝니다.추가 정보:

문자열을 타임존이 없는 타임스탬프로 변환하려면 Postgresql에 대해 위의 항목을 사용합니다.

SELECT to_timestamp('23-11-1986 09:30:00', 'DD-MM-YYYY hh24:mi:ss')::timestamp without time zone;

언급URL : https://stackoverflow.com/questions/18913236/how-to-convert-string-to-timestamp-without-time-zone