천객만래 [千客萬來] (It has an interminable succession of visitors)

private void Page_Load(System.Object sender, System.EventArgs e)
  {
               //sInDate = Strings.Format(DateTime.Now, "yyyy-MM-dd");
            //sInDate = fnGetLangTypeCurrentDate();//로그인한 LangType별 일자 셋팅
            //sInDate = fnChangeDate(DateTime.Now.ToString("U", DateTimeFormatInfo.InvariantInfo));//로그인한 LangType,시간대별 일자 셋팅 (현재시간 UTC형식으로 변경)
            sInDate = fnChangeDate(DateTime.Now.ToString());//로그인한 LangType,시간대별 일자 셋팅 (현재시간 UTC형식으로 변경)

    }

 

 

//로그인한 국가별 시간대별 일자셋팅
        private string fnChangeDate(string sDate)
        {
            string sRstValue = string.Empty;
            sDate = DateTime.Parse(sDate).ToString("U", System.Globalization.DateTimeFormatInfo.InvariantInfo);//UTC 포멧
            DateTime dt = DateTime.Parse(sDate);

            int iGmt = 9;// 한국 시간대를 기본으로 한다.(GMT +9)
            if (Request.Cookies["Login_GMT"] != null)
                iGmt = int.Parse(Request.Cookies["Login_GMT"].Value.Trim());
            dt = dt.AddHours(iGmt);

            if (CurrentLanguage.IndexOf("ko") >= 0)
            {
                //sRstValue += dt.ToString(new System.Globalization.CultureInfo("ko-kr").DateTimeFormat);//일시
                sRstValue += dt.ToString("yyyy-MM-dd", System.Globalization.DateTimeFormatInfo.InvariantInfo);//일자
            }
            else
            {
                //sRstValue = dt.ToString(new System.Globalization.CultureInfo("en-us").DateTimeFormat);//일시
                sRstValue += dt.ToString("d", System.Globalization.DateTimeFormatInfo.InvariantInfo);//일자
            }

            return sRstValue;
        }

        ////로그인한 LangType 에 따른 날짜포멧 변경
        //private string fnGetLangTypeCurrentDate()
        //{
        //    if (CurrentLanguage == "ko")
        //        return DateTime.Now.ToString("yyyy-MM-dd", DateTimeFormatInfo.InvariantInfo);
        //    else
        //        return DateTime.Now.ToString("d", DateTimeFormatInfo.InvariantInfo);
        //}

        ////로그인한 국가별 시간대별 일자셋팅
        //private string fnChangeDate(string sDate)
        //{
        //    try
        //    {
        //        //DateTime dt = DateTime.Parse(sDate).AddHours(-9);
        //        DateTime dt = DateTime.Parse(sDate);
        //        sDate = GetDateTimeString(UTC2LocalDateTime(dt));
        //    }
        //    catch (Exception ex)
        //    {
        //        //CommonUtils.ThrowException(ex, "fnChangeDate");
        //    }
        //    return sDate;
        //}       
        // UTC DateTime 을 로그인한 시간대별 시간으로 바꿔준다.
        //protected DateTime UTC2LocalDateTime(DateTime dt)
        //{
        //    int iGmt = 9;// 한국 시간대를 기본으로 한다.(GMT +9)

        //    if (Request.Cookies["Login_GMT"] != null)
        //        iGmt = int.Parse(Request.Cookies["Login_GMT"].Value.Trim());
           
        //    return dt.AddHours(iGmt);
        //}
        //// 언어에 따라 날짜 시간 포맷에 맞는 스트링을 반환
        //protected string GetDateTimeString(DateTime dt)
        //{
        //    string sRstValue = string.Empty;

        //    try
        //    {
        //        if (CurrentLanguage.IndexOf("ko") >= 0)
        //        {
        //            //sRstValue += dt.ToString(new System.Globalization.CultureInfo("ko-kr").DateTimeFormat);//일시
        //            sRstValue += dt.ToString("yyyy-MM-dd", DateTimeFormatInfo.InvariantInfo);//일자
        //        }
        //        else
        //        {
        //            //sRstValue = dt.ToString(new System.Globalization.CultureInfo("en-us").DateTimeFormat);//일시
        //            sRstValue += dt.ToString("d", DateTimeFormatInfo.InvariantInfo);//일자
        //        }
        //    }
        //    catch (Exception)
        //    {
        //        sRstValue = dt.ToString();
        //    }
        //    return sRstValue;
        //}
        #endregion

Posted by SB패밀리

CAST 및 CONVERT

식을 다른 데이터 형식으로 명시적으로 변환합니다. CAST 및 CONVERT는 비슷한 기능을 제공합니다.

구문

CAST 사용

CAST ( expression AS data_type )

CONVERT 사용

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

인수

expression

유효한 Microsoft® SQL Server™ 식입니다. 자세한 내용은 을 참조하십시오.

data_type

bigint, sql_variant 등 대상 시스템 제공 데이터 형식입니다. 사용자 정의 데이터 형식은 사용할 수 없습니다. 자세한 내용은 데이터 형식을 참조하십시오.

length

nchar, nvarchar, char, varchar, binary, varbinary 데이터 형식의 선택적 매개 변수입니다.

style

datetime, smalldatetime 데이터를 문자 데이터(nchar, nvarchar, char, varchar, nchar, nvarchar 데이터 형식)로 변환할 때 사용되는 날짜 형식이나 float, real, money, smallmoney 데이터를 문자 데이터(nchar, nvarchar, char, varchar, nchar, nvarchar 데이터 형식)로 변환할 때 사용되는 문자열 형식의 스타일입니다.

SQL Server는 쿠웨이트 알고리즘을 사용하여 아랍어 날짜 형식을 지원합니다.

다음 표에서 왼쪽 두 열은 datetime 또는 smalldatetime을 문자 데이터로 변환하기 위한 style 값을 나타냅니다. 세기가 포함된 네 자리 연도(yyyy)를 구하려면 style 값에 100을 더합니다.

세기 포함 안함
(yy)
세기 포함
(yyyy)

표준

입력/출력**
- 0 또는 100 (*) 기본값 mon dd yyyy hh:miAM(또는 PM)
1 101 USA mm/dd/yy
2 102 ANSI yy.mm.dd
3 103 영국/프랑스 dd/mm/yy
4 104 독일 dd.mm.yy
5 105 이탈리아 dd-mm-yy
6 106 - dd mon yy
7 107 - Mon dd, yy
8 108 - hh:mm:ss
- 9 또는 109 (*) 기본값 + 밀리초 mon dd yyyy hh:mi:ss:mmmAM(또는 PM)
10 110 USA mm-dd-yy
11 111 일본 yy/mm/dd
12 112 ISO yymmdd
- 13 또는 113 (*) 유럽 기본값 + 밀리초 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 또는 120 (*) ODBC 표준 yyyy-mm-dd hh:mi:ss(24h)
- 21 또는 121 (*) ODBC 표준(밀리초) yyyy-mm-dd hh:mi:ss.mmm(24h)
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(공간 없음)
- 130* 쿠웨이트 dd mon yyyy hh:mi:ss:mmmAM
- 131* 쿠웨이트 dd/mm/yy hh:mi:ss:mmmAM

*     기본값(style 0 또는 100, 9 또는 109, 13 또는 113, 20 또는 120, 21 또는 121)은 항상 세기(yyyy)를 반환합니다.

밑에 예제는 Convert함수와 날짜함수를 사용하여서 뽑아온것입니다.

 

1) 오늘 작성된 글중 Top 10개

SELECT TOP 10 m_no, m_table, a.cat_num, m_subject, m_insertdate, m_read, b.binfo_type
from m_board a inner join m_binfo b on a.m_table = b.binfo_table
where convert(varchar(40), m_insertdate, 110) = convert(varchar(40),getdate(), 110) and  m_listnum <> 0 and binfo_type <> 'Fbd' 
order by m_read desc

 

2) 오늘부터 일주일전까지 작성된 글중 Top 10개
SELECT TOP 10 m_no, m_table, a.cat_num, m_subject, m_insertdate, m_read, b.binfo_type
from m_board a inner join m_binfo b on a.m_table = b.binfo_table
where  convert(varchar(40),  m_insertdate, 110) >= convert(varchar(40), Dateadd(day,-7, getdate()), 110) and  m_listnum <> 0 and binfo_type <> 'Fbd' 
order by m_read desc

 

3) 오늘부터 한달전까지 작성된글중 랜덤하게 10개

SELECT TOP 10 m_no, m_table, a.cat_num, m_subject, m_insertdate, m_read, b.binfo_type
from m_board a inner join m_binfo b on a.m_table = b.binfo_table
where  convert(varchar(40),  m_insertdate, 110) >= convert(varchar(40), Dateadd(month,-1, getdate()), 110) and  m_listnum <> 0 and binfo_type <> 'Fbd' 
order by newid()

Posted by SB패밀리