Подтвердить что ты не робот

Как преобразовать "string" в "timestamp without 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 zone?

4b9b3361

Ответ 1

Строковое представление timestamp зависит от ваших настроек локали. Поэтому, чтобы избежать двусмысленности, приводящей к тому, что Postgres кашляют исключение, у вас есть два варианта:

1.) Используйте формат ISO 8601, который работает одинаково с любым языковым стандартом или DateStyle:

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

Вам все равно придется явно указывать строку, чтобы избежать двусмысленностей, в зависимости от варианта использования:

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

2.) Отправляйте свою строку в timestamp с помощью to_timestamp() с шаблоном шаблона соответствия:

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

Ответ 2

Чтобы преобразовать строку в метку времени без часового пояса, для Postgresql я использую приведенный выше

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