0

PostGIS 2.0 で websockets 、nodejs v0.10.12、および PostgreSQL 9.1 を使用しています。ここで、サーバー側の websocket で、テキスト データを収集してクライアントに送信するために、ノードの pg プラグインを使用してクエリを実行します。私は次のようなものを持っています

var query = client.query('SELECT p_name,p_date FROM  pins WHERE p_id ='+ja)
//send them and render in client as html
query.on("row", function (row, result) {result.addRow(row);});

query.on("end", function (result) {
    for (var i=0; i<result.rows.length; i++){
           connection.send(
                        'Name</br>'
                        +result.rows[i].p_name+
                        '</br>Date</br>'
                        +result.rows[i].p_date+
                        '</br>'
                        }

      client.end();
 });

さて、ここがトリッキーな部分です。2012 年 2 月 25 日のような日付をレンダリングしたい。上記のコードでは、Sat Feb 02 2002 02:00:00 GMT+0200 (Χειμερινή ώρα GTB) DD/MM/YYYY を取得するには、次のようなコード行を配置する必要があります

SET datestyle = "SQL, DMY";

これはどうやら PHP であり、websocket を使用しているため Javascript を使用しています。

私が考えることができる唯一のことは、上記のクエリを次のように編集することです

var query = client.query('SET datestyle = "SQL, DMY"; SELECT p_name,p_date FROM  pins WHERE p_id ='+ja)

エラーは発生しませんが、クライアントでは日付がレンダリングされnullます。

どうすればこれを修正できますか?

ありがとう

4

1 に答える 1

2

わかった。どこから始めれば?

これ:

var query = client.query('SELECT p_name,p_date FROM  pins WHERE p_id ='+ja)

クエリを作成する正しい方法ではありません。パラメータ化されたクエリを使用して、SQL インジェクションから身を守ります。

SET datestyle = "SQL, DMY";

これはどうやら PHP であり、websocket を使用しているため Javascript を使用しています。

何?この文について何か建設的なことを考えようとしていますが、思いつくのは「なに?」です。上記が PHP であることは明らかではありません。データベースに送信しているという事実は、それが SQL であるというヒントを与えるはずです。また、websocket を使用しているため、javascript を使用していません。あなたはjavascriptを使用しているので、javascriptを使用しています.websocketsはここでは何の関係もありません。

唯一思いついたのは…

マニュアルを参照することは含まれません。

PostgreSQL の Web サイトにアクセスし、クリックしてドキュメントとマニュアルを参照し、目次ページで [関数と演算子] をクリックしてから [データ型書式設定関数] をクリックします。ここにあなたのためのリンクがあります:

http://www.postgresql.org/docs/current/static/functions-formatting.html

PostgreSQL の開発者は広範で詳細なマニュアルを作成するだけでなく、オンラインで複数のバージョンを維持し、変更点を簡単に確認できるようにしています。

このページには、さまざまな方法で日時をフォーマットする方法に関するセクション全体があり、それぞれの効果について明確に説明されています。ドキュメント検索やそのような巧妙なものを使用してこれを見つけたのではなく、各ページの明らかなリンクだけです。

検索を行うと、datestyle パラメーターがたくさん見つかります。さらに掘り下げると、セッションごとに、または特定のユーザーまたはデータベースのデフォルトとして設定できることがわかります。

最後に、しかし、そのようにしないでください。@mu のような ISO 標準の日付形式 (YYYY-MM-DD など) を返します。JavaScriptクライアントコードでフォーマットします。

ああ、私は専門家ではありませんが、それ</br>が有効な HTML、XHTML、または XML であるかどうかはわかりません。ということでしょう<br/>か?

于 2013-07-24T22:02:26.503 に答える