問題タブ [year2038]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
7 参照

mysql-workbench - 数式を作成しましたが、今はそれを年に分割する必要があります。元のデータ シートに年の列があり、年のヘッダーがあります

タイトルが示すように、数式を使用して結果を作成しましたが、「所有者」ごとに数式を実行するように分割する必要がありますが、数式を年に分けます。2010年から2019年の日付があります。ここにコードがあります

SELECT * FROM finaltab;

finaltab.OWNER を OWNER として選択し、SUM(finaltab.shares) A​​S SSUM FROM finaltab WHERE trancode='S' GROUP BY OWNER 年順に並べ替えます。finaltab.OWNER を OWNER として選択し、SUM(finaltab.shares) A​​S PSUM FROM finaltab WHERE trancode='P' GROUP BY OWNER 年順に並べ替えます。

SELECT finaltab.OWNER, SSUM, PSUM FROM (SELECT finaltab.OWNER AS OWNER, SUM(finaltab.shares) A​​S SSUM FROM finaltab WHERE trancode='S' GROUP BY OWNER) AS STable INNER JOIN (SELECT finaltab.OWNER AS OWNER, SUM (finaltab.shares) A​​S PSUM FROM finaltab WHERE trancode='P' GROUP BY OWNER) asS PTable ON (Stable.owner = Ptable.owner);

SELECT STable.OWNER, SSUM, PSUM, (PSUM - SSUM) / (PSUM + SSUM) as "IOF" FROM (SELECT finaltab.OWNER as OWNER, SUM(finaltab.shares) A​​S SSUM from finaltab WHERE trancode='S' GROUP BY OWNER) AS STable INNER JOIN (SELECT finaltab.OWNER as OWNER, SUM(finaltab.shares) A​​S PSUM from finaltab WHERE trancode='P' GROUP BY OWNER) AS PTable ON (STable.OWNER = PTable.OWNER);

これがテーブルです。また、「IOF」または式を取り、それを分子に「IOF」の絶対値を含む式に実装したい場合は、何らかの指示が必要です。ありがとう[1]: https://i.stack.imgur.com/P9GtU.png

0 投票する
0 に答える
125 参照

linux - 32 ビット ハードウェアで 64 ビットの time_t を完全にサポートするには、glibc 2.34 自体を再コンパイルする必要がありますか?

私のCPUはタイプarmhfなので、32ビットです。私はそれで実行Linux Kernel 5.4します(したがって、32ビットシステムで64ビットのtime_tをサポートします)。私はプログラムをコンパイルしますglibc 2.34(したがって、time_t を明示的に 32 ビットではなく 64 ビットに設定できます)。

今、この単純なコードを機能させようとしています (test.c)。

(クロス) 次のようにコンパイルします。

プログラムをテストするために、システムの日付を 2084-01-01 に設定しました (2038 年以降が重要です)。次に、 を実行してファイルを作成しますtouch /tmp/testme.file。このファイルの作成タイムスタンプは 2084-01-01 です。上記のコードを実行すると、次の./testエラー メッセージが表示されます。

関数が 2038 年を超える作成タイムスタンプを持つファイルを処理できないため、 Value too large for defined data typeエラーが発生するようです。lchmod(...)

どうしてこれなの?これはglibcのバグですか、それとも追加の CFLAGS で再コンパイルする必要がありglibc 2.34 ます-D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64か?

に変更lchmod(...)するchmod(...)と動作します。