mysql で日付タイプを整数として選択することは可能ですか? .csv ファイルに出力しますか?
4 に答える
UNIX_TIMESTAMP()を使用して、日付を整数に変換します。
mysql> SELECT UNIX_TIMESTAMP();
-> 1196440210
mysql> SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19');
-> 1196440219
CSV にエクスポートするには、SELECT...INTOを使用します。
SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
はい、可能です。Unix_Timestamp 関数を参照してください: https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp
CSV ファイルへのエクスポートについては、http: //dev.mysql.com/doc/refman/5.0/en/select-into.htmlを参照してください。
考えられる解決策は次の 3 つです。
- Unix タイムスタンプ
- 日付を表す数値
- 「エポック」からの経過日数
Unix タイムスタンプ
RedFilter が投稿したようunix_timestamp(date)
に、Unix タイムスタンプの値を返します。これは、1970 年 1 月 1 日 00:00:00 UTC から経過した秒数を表す符号なし整数です。
日付を表す数値
場合によっては、日付を数値で表す必要があります。例: 20130331
2013 年 3 月 31 日。これは単にフォーマットの問題です。
select cast(date_format(date, `%Y%m%d') as int)
cast()
およびdate_format()
関数の適切な使用方法については、リファレンス マニュアルを参照してください。
「エポック」からの経過日数
特定の日 (2011 年 5 月 15 日など) からの経過日数をカウントする必要がある場合は、次のdatediff()
関数が必要になります。
SELECT DATEDIFF('2013-03-31','2011-05-15')
datediff()
関数の適切な使用方法については、リファレンス マニュアルを参照してください。
これがお役に立てば幸いです。
以下を使用できます。
select UNIX_TIMESTAMP(date)
from MyTable
引数なしで呼び出された場合、Unix タイムスタンプ ('1970-01-01 00:00:00' UTC からの秒数) を符号なし整数として返します。UNIX_TIMESTAMP() が日付引数で呼び出された場合、引数の値を '1970-01-01 00:00:00' UTC からの秒数として返します。