�@�ł́A��������A�ȒP�����Ȃ̂ɂ�����������Ȃ��i���邢�́A�v���o���Ȃ��j�悤�ȓ��t�̎擾�ɂ��Č��Ă����܂��傤�B
�@�܂��́A����ł��B
�y����̌��̍ŏI�����擾����iLAST_DAY�j�z
�@����͌��������ȂǂɊ֘A���Ďg���邱�Ƃ�����܂����A�g���@��Ȃ��J���҂ɂƂ��Ă͉���������1�ł��B�g�����͊ȒP�ŁA�擾���������̓��t�������ɓn���A�����OK�ł��B
�@���邤�N�����f���Ă����̂ŁA�Ⴆ��2���̍ŏI�������Ȃ��擾�ł��܂��B
�@�ł́A�����߂͂ǂ�����Ď擾���܂��傤���H FIRST_DAY�Ȃ�Ă������͂������ł��傤���H ����������k�ł��I
�@�ł͑���ɁA�T�̏������擾���Ă݂܂��傤�B
�y�T�̏������擾����iTRUNC�j�z
�@�悭�X�P�W���[���̊m�F������ۂɁA�u�����̏T�v�Ƃ����\�������܂��B�܂�T�̐擪�̓����w���Ă���̂ł����A�����Oracle�Ŏ擾����ꍇ�͂ǂ�����悢�ł��傤���H
�@���̏ꍇ��TRUNC�����g�p���܂��B���l���ۂ߂��肷��ۂɎg�p������ł����A���͓��t�f�[�^�ɂ��g�����Ƃ��ł��܂��B
�@�ł́A���T�̏T���߂̓����擾���Ă݂܂��B
SQL> !cal 2�� 2005 �� �� �� �� �� �� �y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
�@������2��16���ł��B
SQL> select SYSDATE from dual; SYSDATE -------- 05-02-16
�@TRUNC���̑�2������'day'�𗘗p����Ɓc�c�B
SQL> select TRUNC(SYSDATE,'day') from dual; TRUNC(SY -------- 05-02-13
�@�Ƃ�����ɁA�ȒP�ɏT���߂̓����擾���邱�Ƃ��ł��܂��B�������SYSDATE���̑���ɁASYSTIMESTAMP�����g�p���邱�Ƃ��ł��܂��B�������ADATE�^�ɕϊ�����邱�Ƃ͊o���Ă����K�v������܂��B
�@���t�f�[�^��TRUNC�����g�p����ꍇ�A��2�����ɂ�'day'�̂ق��ɂ��������w��ł��܂��B�}�j���A���Ŋm�F���Ă݂Ă��������B
�@TRUNC�����g�p�����T���v��SQL��1�����Ă����܂��B����́u�����̑�n���j�����擾�����v�ł��B
select decode(TRUNC(get_date,'mm'),TRUNC(SYSDATE,'mm'),get_date,null) from ( select decode(TRUNC(TRUNC(TRUNC(SYSDATE,'mm'),'day') + :youbi -1,'mm') ,TRUNC(SYSDATE,'mm') ,TRUNC(TRUNC(SYSDATE,'mm'),'day') + :youbi -1 ,TRUNC(TRUNC(SYSDATE,'mm'),'day') + :youbi -1 + 7) + (:nambanme - 1) * 7 get_date from dual)
�@youbi�ϐ��ɓ��j���i1�j����y�j���i7�j�܂łɑ������鐔����ݒ肵�܂��B�܂��Anambanme�ϐ��ɉ��ԁi�T�j�ڂ̗j�����擾���邩��ݒ肵�܂��B������SQL�ŋL�q���܂������A�����܂ł���Ȃ畁�ʂ�FUNCTION�ɂ���ł��傤�ˁB
�y�j���̏�����NEXT_DAY���Łz
�@���������AOracle�̊��ɗj��������������������悤�ȁc�c���������ANEXT_DAY���ł��BNEXT_DAY���́g�w�肵�����h�̎��́g�w�肵���j���h�ɑ�����������擾���Ă������ł��B��L��SQL���j���������Ă���̂ŁA����NEXT_DAY�����g�p����ƃV���v���ɂȂ�܂��B
select decode(TRUNC(get_date,'mm'),TRUNC(SYSDATE,'mm'),get_date,null) from ( select NEXT_DAY(TRUNC(SYSDATE,'mm')-1, :youbi) + 7 *( :nambanme -1 ) get_date from dual)
�@�O���ɑΏی����O�ꂽ�ꍇ�̃n���h�����O�p��DECODE�����������Ă��邾���ŁA���ۂɓ��t���擾���镔���͂�����1�s�����ɂȂ�܂����B���Ȃ݂ɁANEXT_DAY���̑�2�����ɂ́A�j�������̂܂w�肵�܂��B�Ⴆ�A'���j��'��A'MON'�Ƃ�������ł��B
�@�������܂��g���ƁA�������ʂ�Ԃ�SQL���A���V���v���ɏ����������Ƃ��ł��܂��B���̂��߂ɂ͂Ƃɂ������낢��Ȋ��ɐG��Ă����K�v������܂��B�m��Ȃ��Ǝg�����Ƃ͎v��Ȃ��ł�����ˁB�����o���͑����ɉz�������Ƃ͂���܂���B�ł͂��������s���Ă݂܂��傤�B
�y���t�����̎l�̌ܓ��iROUND�j�z
�@���̂悤�ȏꍇ�͂ǂ�����悢�ł��傤���B�Ⴆ�A�~�~���ȍ~�ɓ��͂��ꂽ�����́A���������Ƃ������B
�@����ɂ͎l�̌ܓ����g���܂��B�������A�ق��ɕ��@���Ȃ��킯�ł͂���܂��A����͓O��I�ɓ��t�f�[�^�Ɏg��������g���|���܂��B
�@�Ⴆ�A12���ȍ~�͗��������Ƃ���ꍇ�A11��59��59�b�܂ł�2��14���ł����c�c�B
SQL> select round(to_date('2005/02/14 11:59:59', 'yyyy/mm/dd hh24:mi:ss')) from dual; ROUND(TO -------- 05-02-14
�@12�����傤�ǂ���͗����̓��t�ɕς��܂��B
SQL> select round(to_date('2005/02/14 12:00:00', 'yyyy/mm/dd hh24:mi:ss')) from dual; ROUND(TO -------- 05-02-15
�@12���ł͂Ȃ��ߌ�6�����ւ��^�C�~���O�ɂ������ꍇ�́A6���ԃV�t�g������Α��v�ł��B
SQL> select round(to_date('2005/02/14 12:00:00', 'yyyy/mm/dd hh24:mi:ss')-6/24) from dual; ROUND(TO -------- 05-02-14 SQL> select round(to_date('2005/02/14 18:00:00', 'yyyy/mm/dd hh24:mi:ss')-6/24) from dual; ROUND(TO -------- 05-02-15
�@���́A�i�Ƃ��������łɊF����C�t����Ă���Ǝv���܂����j�ǂ����������V�t�g������K�v������̂ł���A�킴�킴ROUND�����g�p�����A�ŏ�����V�t�g�����������Ԃ������Z����Γ������ʂɂȂ�܂��B��[������Ɣw�i�ݒ�ɖ������������ł��傤���B�܁A�����������Ƃ��ł���Ƃ������Ƃł��B�i���y�[�W�ɑ����j
Copyright © ITmedia, Inc. All Rights Reserved.