日付のフォーマット(SQL Server)
CONVERTとか
DECLARE @myDate DATETIME SET @myDate= '2005/8/11 12:34:56:789'
YYMMDD系
SELECT '102' ,CONVERT(VARCHAR(20),@myDate,102) --2005.08.11 SELECT '120' ,CONVERT(VARCHAR(30),@myDate,120) --2005-08-11 12:34:56 SELECT '111' ,CONVERT(VARCHAR(20),@myDate,111) --2005/08/11 SELECT '112' ,CONVERT(VARCHAR(20),@myDate,112) --20050811 SELECT '121' ,CONVERT(VARCHAR(30),@myDate,121) --2005-08-11 12:34:56.790 SELECT '126' ,CONVERT(VARCHAR(30),@myDate,126) --2005-08-11T12:34:56.790 SELECT '2' ,CONVERT(VARCHAR(30),@myDate,2) --05.08.11 SELECT '11' ,CONVERT(VARCHAR(30),@myDate,11) --05/08/11 SELECT '12' ,CONVERT(VARCHAR(30),@myDate,12) --050811
YYMM系
SELECT '112' ,CONVERT(VARCHAR(6),@myDate,112) --200508 SELECT '12' ,CONVERT(VARCHAR(4),@myDate,12) --0508
MMDDYY系
SELECT '100' ,CONVERT(VARCHAR(20),@myDate,100) --08 11 2005 12:34PM SELECT '101' ,CONVERT(VARCHAR(20),@myDate,101) --08/11/2005 SELECT '107' ,CONVERT(VARCHAR(20),@myDate,107) --08 11, 2005 SELECT '109' ,CONVERT(VARCHAR(30),@myDate,109) --08 11 2005 12:34:56:790PM SELECT '110' ,CONVERT(VARCHAR(30),@myDate,110) --08-11-2005 SELECT '1' ,CONVERT(VARCHAR(30),@myDate,1) --08/11/05 SELECT '7' ,CONVERT(VARCHAR(30),@myDate,7) --08 11, 05 SELECT '10' ,CONVERT(VARCHAR(30),@myDate,10) --08-11-05
SELECT '1' ,CONVERT(VARCHAR(5),@myDate,101) --08/11 SELECT '101' ,CONVERT(VARCHAR(5),@myDate,101) --08/11
DDMMYY系
SELECT '103' ,CONVERT(VARCHAR(20),@myDate,103) --11/08/2005 SELECT '104' ,CONVERT(VARCHAR(20),@myDate,104) --11.08.2005 SELECT '105' ,CONVERT(VARCHAR(20),@myDate,105) --11-08-2005 SELECT '106' ,CONVERT(VARCHAR(20),@myDate,106) --11 08 2005 SELECT '113' ,CONVERT(VARCHAR(30),@myDate,113) --11 08 2005 12:34:56:790 SELECT '3' ,CONVERT(VARCHAR(30),@myDate,3) --11/08/05 SELECT '4' ,CONVERT(VARCHAR(30),@myDate,4) --11.08.05 SELECT '5' ,CONVERT(VARCHAR(30),@myDate,5) --11-08-05 SELECT '6' ,CONVERT(VARCHAR(30),@myDate,6) --11 08 05
時刻系
SELECT '108' ,CONVERT(VARCHAR(20),@myDate,108) --12:34:56 SELECT '8' ,CONVERT(VARCHAR(30),@myDate,8) --12:34:56 SELECT '114' ,CONVERT(VARCHAR(20),@myDate,114) --12:34:56:790 SELECT '14' ,CONVERT(VARCHAR(30),@myDate,14) --12:34:56:790
逆引き
--yyyymmdd --yyyy/mm/dd SELECT '112' ,CONVERT(VARCHAR(20),@myDate,112) SELECT '111' ,CONVERT(VARCHAR(20),@myDate,111)
--yyyymm --yyyy/mm SELECT '112' ,CONVERT(VARCHAR(6),@myDate,112) SELECT '111' ,CONVERT(VARCHAR(7),@myDate,111)
--yyyy SELECT '112' ,CONVERT(VARCHAR(4),@myDate,112)
--yymm SELECT '12' ,CONVERT(VARCHAR(4),@myDate,12) --yy/mm SELECT '11' ,CONVERT(VARCHAR(5),@myDate,11)
--mmdd SELECT '112' ,SUBSTRING(CONVERT(VARCHAR(8),@myDate,112),5,4) --mm/dd SELECT '101' ,CONVERT(VARCHAR(5),@myDate,101)
Insert時に新しく付与されたIDの取得方法(SQL Server)
IDENTITYプロパティ
SQL Serverに一意のIDを生成させる方法として、列にIDENTITYプロパティを指定する方法があります。 IDENTITYプロパティには次の特徴があります。
* ひとつのテーブルのひとつの列にしか指定できません。 * 指定する列のデータ型はint型、bigint型、smallint型、tinyint型、decimal型、numeric型に限ります。 * (設定により変更可能ですが)基本的に値のセットは出来ません。
IDENTITYを指定した列に値を挿入したい場合は、IDENTITY_INSERTプロパティをONに設定します。 この設定は同一セッション内でのみ有効です。
BEGIN TRANSACTION SERIALIZABLE;
INSERT INTO …
SELECT SCOPE_IDENTITY();
COMMIT TRANSACTION;
IDENTITY列の番号リセット(SQL Server)
SQLServerで、Identity属性を使用して自動的に番号をセットしている項目があります。
この採番を1からやり直したい時
DBCC CHECKIDENT (tablename ,RESEED ,0)
にて変更可能です。
0の部分を戻したい値に変更する事も可能です。