YYYY/MM/DD hh:mm:ss な文字列の長さとか切り出しとか
長さは19文字。
YYYY/MM/DD hh:mm:ss 1111111111 1234567890123456789
年、月、日、時、分、秒の切り出し。
PHPのsubstrは位置の指定が0始まり。
<?php // YYYY/MM/DD hh:mm:ss // 111111111 // 0123456789012345678 $dt = date('Y/m/d H:i:s'); $yyyy = substr($dt, 0, 4); $mm = substr($dt, 5, 2); $dd = substr($dt, 8, 2); $hh = substr($dt, 11, 2); $mi = substr($dt, 14, 2); $ss = substr($dt, 17, 2); echo $dt . "\n"; echo $yyyy . "\n"; echo $mm . "\n"; echo $dd . "\n"; echo $hh . "\n"; echo $mi . "\n"; echo $ss . "\n";
AWKのsubstrは位置の指定が1始まり。
BEGIN{ dt = strftime("%Y/%m/%d %H:%M:%S"); yyyy = substr(dt,1, 4); mm = substr(dt,6, 2); dd = substr(dt,9, 2); hh = substr(dt,12, 2); mi = substr(dt,15, 2); ss = substr(dt,18, 2); print dt print yyyy; print mm; print dd; print hh; print mi; print ss; }
PostgreSQL の substr も位置の指定が1始まり。
select substr(to_char(current_timestamp,'YYYY/MM/DD HH24:MI:SS'),1,4) as yyyy , substr(to_char(current_timestamp,'YYYY/MM/DD HH24:MI:SS'),6,2) as mm , substr(to_char(current_timestamp,'YYYY/MM/DD HH24:MI:SS'),9,2) as dd , substr(to_char(current_timestamp,'YYYY/MM/DD HH24:MI:SS'),12,2) as hh , substr(to_char(current_timestamp,'YYYY/MM/DD HH24:MI:SS'),15,2) as mi , substr(to_char(current_timestamp,'YYYY/MM/DD HH24:MI:SS'),18,2) as ss ;
変数 %date% %time% の値を修飾子で切り出す方法がある。
%hoge:~n,m%
n が開始位置 0 始まり
m が長さ
set YYYY=%date:~0,4% set MM=%date:~5,2% set DD=%date:~8,2% set hh=%time:~0,2% set mi=%time:~3,2% set ss=%time:~6,2%
http://www.atmarkit.co.jp/ait/articles/0405/01/news002.html
をよく読む。