■ DateTime 구조체를 사용해 주 첫번째 날짜를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
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 29 30 31 32 33 34 35 36 37 38 39
|
using System; using System.Collections; /// <summary> /// 주 일자 해시 테이블 /// </summary> private static Hashtable _dayOfWeekHashTable = new Hashtable(); ... _dayOfWeekHashTable["Monday" ] = (int)0; _dayOfWeekHashTable["Thursday" ] = (int)1; _dayOfWeekHashTable["Wednesday"] = (int)2; _dayOfWeekHashTable["Thursday" ] = (int)3; _dayOfWeekHashTable["Friday" ] = (int)4; _dayOfWeekHashTable["Saturday" ] = (int)5; _dayOfWeekHashTable["Sunday" ] = (int)6; ... #region 주 첫번째 날짜 구하기 - GetFirstDateOfWeek(sourceDate) /// <summary> /// 주 첫번째 날짜 구하기 /// </summary> /// <param name="sourceDate">소스 날짜</param> /// <returns>주 첫번째 날짜</returns> public DateTime GetFirstDateOfWeek(DateTime sourceDate) { DateTime temporaryDate = GetDate(sourceDate); int dayOfWeekCount = (int)_dayOfWeekHashTable[sourceDate.DayOfWeek.ToString()]; return temporaryDate.AddDays((double) -dayOfWeekCount); } #endregion |
■ DateTime 구조체를 사용해 월 마지막 날짜를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
using System; #region 월 마지막 날짜 구하기 - GetLastDateOfMonth(sourceDate) /// <summary> /// 월 마지막 날짜 구하기 /// </summary> /// <param name="sourceDate">소스 날짜</param> /// <returns>월 마지막 날짜</returns> public DateTime GetLastDateOfMonth(DateTime sourceDate) { return new DateTime ( sourceDate.Year, sourceDate.Month, DateTimeManager.GetDayCount(sourceDate.Year, sourceDate.Month) ); } #endregion |
■ DateTime 구조체를 사용해 월 첫번째 날짜를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
using System; #region 월 첫번째 날짜 구하기 - GetFirstDateOfMonth(sourceDate) /// <summary> /// 월 첫번째 날짜 구하기 /// </summary> /// <param name="sourceDate">소스 날짜</param> /// <returns>월 첫번째 날짜</returns> public DateTime GetFirstDateOfMonth(DateTime sourceDate) { return new DateTime(sourceDate.Year, sourceDate.Month, 1); } #endregion |
■ DateTime 구조체를 사용해 분기 마지막 날짜를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
using System; #region 분기 마지막 날짜 구하기 - GetLastDateOfQuarter(sourceDate) /// <summary> /// 분기 마지막 날짜 구하기 /// </summary> /// <param name="sourceDate">소스 날짜</param> /// <returns>분기 마지막 날짜</returns> public DateTime GetLastDateOfQuarter(DateTime sourceDate) { int sourceMonth = sourceDate.Month; DateTime targetDate; DateTime temporaryDate; if(sourceMonth != 0) { int monthCount = sourceMonth + (3 - (sourceMonth % 3)); temporaryDate = new DateTime(sourceDate.Year, monthCount, 1); temporaryDate.AddMonths(1); temporaryDate.AddDays(-1.0); targetDate = temporaryDate.AddMonths(1).AddDays(-1.0); } else { temporaryDate = new DateTime(sourceDate.Year, sourceDate.Month, 1); temporaryDate.AddMonths(1); temporaryDate.AddDays(-1.0); targetDate = temporaryDate.AddMonths(1).AddDays(-1.0); } return targetDate; } #endregion |
■ DateTime 구조체를 사용해 분기 첫번째 날짜를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
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 29 30 31 32 33 34 35 36 37
|
using System; #region 분기 첫번째 날짜 구하기 - GetFirstDateOfQuarter(sourceDate) /// <summary> /// 분기 첫번째 날짜 구하기 /// </summary> /// <param name="sourceDate">소스 날짜</param> /// <returns>분기 첫번째 날짜</returns> public DateTime GetFirstDateOfQuarter(DateTime sourceDate) { int sourceMonth = sourceDate.Month; DateTime targetDate; DateTime temporaryDate; if(sourceMonth != 0) { int monthCount = (sourceMonth % 3) - 1; temporaryDate = sourceDate.AddMonths(-monthCount); targetDate = new DateTime(temporaryDate.Year, temporaryDate.Month, 1); } else { temporaryDate = sourceDate.AddMonths(-2); targetDate = new DateTime(temporaryDate.Year, temporaryDate.Month, 1); } return targetDate; } #endregion |
■ DateTime 구조체를 사용해 연도 마지막 날짜를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
using System; #region 연도 마지막 날짜 구하기 - GetLastDateOfYear(sourceDate) /// <summary> /// 연도 마지막 날짜 구하기 /// </summary> /// <param name="sourceDate">소스 날짜</param> /// <returns>연도 마지막 날짜</returns> public DateTime GetLastDateOfYear(DateTime sourceDate) { return new DateTime(sourceDate.Year, 12, 31); } #endregion |
■ DateTime 구조체를 사용해 연도 첫번째 날짜를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
using System; #region 연도 첫번째 날짜 구하기 - GetFirstDateOfYear(sourceDate) /// <summary> /// 연도 첫번째 날짜 구하기 /// </summary> /// <param name="sourceDate">소스 날짜</param> /// <returns>연도 첫번째 날짜</returns> public DateTime GetFirstDateOfYear(DateTime sourceDate) { return new DateTime(sourceDate.Year, 1, 1); } #endregion |
■ 시간 문자열을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
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
|
#region 시간 문자열 구하기 - GetTimeString(secondCount) /// <summary> /// 시간 문자열 구하기 /// </summary> /// <param name="secondCount">초 수</param> /// <returns>시간 문자열</returns> public string GetTimeString(int secondCount) { string time = ((int)secondCount / (60 * 60)).ToString("00") + ":"; secondCount = secondCount % (60 * 60); time += ((int)secondCount / 60).ToString("00") + ":"; secondCount = secondCount % (60); time += secondCount.ToString("00"); return time; } #endregion |
■ DateTime 구조체를 사용해 말일 여부를 조사하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
using System; #region 말일 여부 조사하기 - IsLastDay(sourceDate) /// <summary> /// 말일 여부 조사하기 /// </summary> /// <param name="sourceDate">소스 일자</param> /// <returns>말일 여부</returns> public bool IsLastDay(DateTime sourceDate) { int dayCount = DateTime.DaysInMonth(sourceDate.Year, sourceDate.Month); return dayCount == sourceDate.Day; } #endregion |
■ 윤년 여부를 조사하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
#region 윤년 여부 조사하기 - IsLeapYear(year) /// <summary> /// 윤년 여부 조사하기 /// </summary> /// <param name="year">연도</param> /// <returns>윤년 여부</returns> public bool IsLeapYear(int year) { return (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0); } #endregion |
■ 타임 스탬프 문자열을 구하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT FORMAT(CURRENT_TIMESTAMP, 'yyyyMMdd hhmmss ffff'); |
※ 버전 2012에서 실행된다.
■ DATEPART 함수를 사용하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT DATEPART(DD, GETDATE()); -- 일자 SELECT DATEPART(MM, GETDATE()); -- 월 SELECT DATEPART(YY, GETDATE()); -- 연도 SELECT DATEPART(WW, GETDATE()); -- 주차 SELECT DATEPART(DY, GETDATE()); -- 연중 일 수 |
■ DATEADD 함수를 사용하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT DATEADD(DD, 10, GETDATE()); -- 10일 추가 SELECT DATEADD(MM, 10, GETDATE()); -- 10개월 추가 SELECT DATEADD(YY, 10, GETDATE()); -- 10년 추가 SELECT DATEADD(WW, 10, GETDATE()); -- 10주 추가 |
■ DATEDIFF 함수를 사용하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT DATEDIFF(DD, '20050101', GETDATE()); -- 일차 SELECT DATEDIFF(MM, '20050101', GETDATE()); -- 월차 SELECT DATEDIFF(YY, '20050101', GETDATE()); -- 년차 SELECT DATEDIFF(WW, '20050101', GETDATE()); -- 주차 |
■ 날짜 포맷을 사용하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT FORMAT(CURRENT_TIMESTAMP, 'yyyyMMdd hhmmss fff'); |
※ 2008 R2 버전 이상에서 사용 가능하다.
■ 날짜 포맷을 사용하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT CONVERT(VARCHAR(10),GETDATE(),120) -- '2014-10-20' SELECT CONVERT(VARCHAR(10),GETDATE(),111) -- '2014/10/20' SELECT CONVERT(VARCHAR(8 ),GETDATE(),112) -- '20141020' |
■ 특정 기간을 갖는 날짜(YYYYMMDD) 테이블을 생성하는 방법을 보여준다. ▶ 특정 기간을 갖는 날짜(YYYYMMDD) 테이블 생성하기 예제 (SQL)
|
SELECT * FROM dbo.CreateDateTable('2014-01-01', '2014-12-31'); |
▶ 특정 기간을
더 읽기
■ 특정일의 해당 주간 시작일/종료일(YYYYMMDD)을 구하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
DECLARE @Date DATETIME; SET @Date = GETDATE(); ▶ 월요일 ~ 일요일 구하기 SELECT CONVERT(CHAR(8), @Date, 112) - DATEPART(dw, @Date) + 2 ,CONVERT(CHAR(8), @Date, 112) - DATEPART(dw, @Date) + 8; ▶ 일요일 ~ 토요일 구하기 SELECT CONVERT(CHAR(8), DATEADD(Day, -(DATEPART(dw, @Date) - 1), @Date), 112) ,CONVERT(CHAR(8), DATEADD(Day, (7 - DATEPART(dw, @Date)) , @Date), 112); |
■ 특정일의 해당 월 주차를 구하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
DECLARE @Date DATETIME; SET @Date = GETDATE(); SELECT (DAY(@Date) + DATEPART(dw, LEFT(CONVERT(VARCHAR(8), @Date, 112), 6) + '01') - 2) / 7 + 1; |
■ 특정 연월(YYYYMM)을 더하는 방법을 보여준다. ▶ 특정 연월(YYYYMM) 더하기 예제 (SQL)
|
SELECT dbo.AddYearMonth('201403', 0, 10); |
▶ 특정 연월(YYYYMM) 더하기 (SQL)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
CREATE FUNCTION dbo.AddYearMonth ( @P_YYYYMM VARCHAR(6) -- 연월 ,@P_YearCount INT -- 연도 수 ,@P_MonthCount INT -- 월 수 ) RETURNS VARCHAR(6) AS BEGIN DECLARE @Date DATETIME; SET @Date = CONVERT(DATETIME, @YYYYMM + '01'); SET @Date = DATEADD(Year , @YearCount , @Date); SET @Date = DATEADD(Month, @MonthCount, @Date); RETURN SUBSTRING(CONVERT(CHAR(8), @Date, 112), 1, 6); END GO |
■ 특정일의 연월일(YYYYMMDD)을 구하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
DECLARE @Date DATETIME; SET @Date = GETDATE(); SELECT CONVERT(CHAR(8), @Date, 112); |
■ 특정일의 해당 월(MM)을 구하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
DECLARE @Date DATETIME; SET @Date = GETDATE(); SELECT SUBSTRING(CONVERT(CHAR(20),DATEADD(MONTH, 0, @Date), 112), 5, 2); |
■ 특정일의 해당연도(YYYY)를 구하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
DECLARE @Date DATETIME; SET @Date = GETDATE(); SELECT SUBSTRING(CONVERT(CHAR(20), @Date, 112), 1, 4); |
■ 특정일의 전년도 연월(YYYYMM)을 구하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
DECLARE @Date DATETIME; SET @Date = GETDATE(); SELECT SUBSTRING(CONVERT(CHAR(20), DATEADD(YEAR , -1, @Date),112), 1, 6); |
■ 특정일의 해당연도 연월(YYYYMM)을 구하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
DECLARE @Date DATETIME; SET @Date = GETDATE(); SELECT SUBSTRING(CONVERT(CHAR(8), @Date, 112), 1, 6); |