복붙노트

[SQL] C #을 사용 SQL 형식으로 날짜 시간 형식

SQL

C #을 사용 SQL 형식으로 날짜 시간 형식

mm : ss로 내 UPDATE 쿼리에 사용할 수 있도록 나는 C #에서 현재 날짜 시간 형식을 저장하고 YYYY-MM-DD HH 그래서 같은 SQL 서버 날짜 형식으로 변환하려합니다.

이것은 내 첫 번째 코드했다 :

DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");

날짜의 출력은 괜찮지 만, 시간이 나는 다음에 내 코드를 변경 항상 "12시 0분 0초"그래서입니다 :

string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " + 
myDateTime.TimeOfDay.ToString("HH:mm:ss");

그것은 나에게이 컴파일 에러를했다 :

내가 구문 분석 할 필요가 제안했다. 그래서 여기에 StackOverflow에 내 연구에 따라 내 코드에이 일을 시도 :

string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " + 
myDateTime.Parse.TimeOfDay.ToString("HH:mm:ss");

또는

string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " + 
myDateTime.tryParse.TimeOfDay.ToString("HH:mm:ss");

그러나 주어진 컨텍스트에 대해 유효하지 않은 방법이 있다고 나에게 말하고있다. 나는 내 문제에 대한 해결책을 찾고 시도하고 지금은 2 시간 동안 갇혀있다. 나는 당신이 나를하시기 바랍니다 도움이 될 수 있습니다, 아직 C #에서 조금 새로운 해요?

해결법

  1. ==============================

    1.아래에 이것을 시도

    아래에 이것을 시도

    DateTime myDateTime = DateTime.Now;
    string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
    
  2. ==============================

    2.표준 날짜 형식 "S"또한 국제화 호환성을 보장합니다 (MM / DD 대 DD / MM)를 사용하여 :

    표준 날짜 형식 "S"또한 국제화 호환성을 보장합니다 (MM / DD 대 DD / MM)를 사용하여 :

    myDateTime.ToString("s");
    
    => 2013-12-31T00:00:00
    

    전체 옵션 (코드 : 샘플 결과)

    d: 6/15/2008 
    D: Sunday, June 15, 2008 
    f: Sunday, June 15, 2008 9:15 PM 
    F: Sunday, June 15, 2008 9:15:07 PM 
    g: 6/15/2008 9:15 PM 
    G: 6/15/2008 9:15:07 PM 
    m: June 15 
    o: 2008-06-15T21:15:07.0000000 
    R: Sun, 15 Jun 2008 21:15:07 GMT 
    s: 2008-06-15T21:15:07 
    t: 9:15 PM 
    T: 9:15:07 PM 
    u: 2008-06-15 21:15:07Z 
    U: Monday, June 16, 2008 4:15:07 AM 
    y: June, 2008 
    
    'h:mm:ss.ff t': 9:15:07.00 P 
    'd MMM yyyy': 15 Jun 2008 
    'HH:mm:ss.f': 21:15:07.0 
    'dd MMM HH:mm:ss': 15 Jun 21:15:07 
    '\Mon\t\h\: M': Month: 6 
    'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00
    

    4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0 : .NET 프레임 워크에서 지원 참조 : DateTime.ToString 방법

  3. ==============================

    3.정답은 이미 "파라미터를 사용합니다"주어졌다. 이 날짜가 서버 측에서 해석 방법의 설정에 따라 같은 날짜 포맷 및 SQL-Server에 문자열로 전달하면 오류가 발생할 수 있습니다. 유럽에서, 우리는 다른 국가에서이 1월 12일으로 처리 될 수있는 반면, 12 월 1 일 2012를 나타 내기 위해 '2012년 1월 12일'를 작성합니다.

    정답은 이미 "파라미터를 사용합니다"주어졌다. 이 날짜가 서버 측에서 해석 방법의 설정에 따라 같은 날짜 포맷 및 SQL-Server에 문자열로 전달하면 오류가 발생할 수 있습니다. 유럽에서, 우리는 다른 국가에서이 1월 12일으로 처리 될 수있는 반면, 12 월 1 일 2012를 나타 내기 위해 '2012년 1월 12일'를 작성합니다.

    SSMS에서 직접 문을 발행 할 때 나는 매우 일반적인 것 같다 yyyymmdd 형식을 사용합니다. 나는 내가 지금까지 근무 다양한 설치에 문제가 발생하지 않았다.

    조금 이상하지만 모든 버전에서 작동 다른 거의 사용 형태가있다 :

    select { d '2013-10-01' }
    

    2013 년 10 월 첫 번째를 반환합니다.

    select { ts '2013-10-01 13:45:01' }
    

    , 오후 1시 45분 1초을 10 월 1 일을 반환합니다

    난 강력하게 조언 매개 변수를 사용하여 함께 자체 개발 한 형식의 문장 조각을 붙여 자신 만의 SQL 코드를 포맷하지합니다. 그것은 SQL 주입 및 이상한 오류에 대한 항목이다 (float 치를 포맷하면 또 다른 잠재적 인 문제입니다)

  4. ==============================

    4.첫 번째 코드는이 작업을 수행하여 작동합니다

    첫 번째 코드는이 작업을 수행하여 작동합니다

    DateTime myDateTime = DateTime.Now;
    string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss"); //Remove myDateTime.Date part 
    
  5. ==============================

    5.귀하의 문제는 현재까지 날짜 시간을 자릅니다 "날짜"속성입니다. 이 같은 변환을 넣을 수 있습니다 :

    귀하의 문제는 현재까지 날짜 시간을 자릅니다 "날짜"속성입니다. 이 같은 변환을 넣을 수 있습니다 :

    DateTime myDateTime = DateTime.Now;
    string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss"); // <- No Date.ToString()!
    
  6. ==============================

    6.내가 찾고 있던 대답했다 :

    내가 찾고 있던 대답했다 :

    DateTime myDateTime = DateTime.Now;
    string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss");
    

    나는 또한 당신이이 방법을 수행 할 수 있음을 배웠습니다 :

    DateTime myDateTime = DateTime.Now;
    string sqlFormattedDate = myDateTime.ToString(myCountryDateFormat);
    

    myCountryDateFormat는 요구 사항에 따라 충족 변화에 변경 될 수있는 곳.

    (가) 태그 "이 질문은 이미 여기에 답을 할 수 있습니다 :"것을 참고하시기 바랍니다 당신이 그것을 생략하는 대신 ".Date"을 사용 볼 수 있기 때문에 실제로 질문에 대답하지 않았다. 그것은 아주 .NET의 새로운 프로그래머를위한 혼란

  7. ==============================

    7.당신이 테이블에 현재 날짜를 저장하려면 그래서 당신은 사용할 수 있습니다

    당신이 테이블에 현재 날짜를 저장하려면 그래서 당신은 사용할 수 있습니다

    또는 파라미터로서이 함수를 전달

    예를 들면. '업데이트 tblname 세트 CURDATE = GETDATE () COLNAME 123 ='

  8. ==============================

    8.왜 모두 문자열을 건너 뛰지 :

    왜 모두 문자열을 건너 뛰지 :

    SqlDateTime myDateTime = DateTime.Now;
    
  9. ==============================

    9.귀하의 문제는 현재까지 날짜 시간을 절단 날짜 속성입니다. 이 같은 변환을 넣을 수 있습니다 :

    귀하의 문제는 현재까지 날짜 시간을 절단 날짜 속성입니다. 이 같은 변환을 넣을 수 있습니다 :

    DateTime myDateTime = DateTime.Now;
    
    string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss");
    
  10. ==============================

    10.또 다른 해결책은 SQL 서버의 언어 설정에 관계없이 SQL Server에 C #에서 날짜 시간을 전달하는

    또 다른 해결책은 SQL 서버의 언어 설정에 관계없이 SQL Server에 C #에서 날짜 시간을 전달하는

    아마도 당신의 국가 별 설정 DD.MM.YYYY (독일어 표준 '104')로 날짜를 표시하는 것이 다음

    DateTime myDateTime = DateTime.Now;
    string sqlServerDate ="CONVERT("date,'"+myDateTime+"',104)"; 
    

    "104"규칙에 따라 매핑을 고려, SQL 서버 및 날짜 형식 변수에 C #의 날짜 변수를 전달합니다. SQL 서버 날짜는 YYYY-MM-DD를 얻는다

    당신의 국가 별 설정이 다르게 날짜 시간을 표시 할 경우, SQL 서버 CONVERT 표에서 적절한 매칭을 사용

    규칙에 대한 자세한 내용을 참조하십시오 https://www.techonthenet.com/sql_server/functions/convert.php

  11. ==============================

    11.나는 문제가없는 두 개의 작은 따옴표 생각.

    나는 문제가없는 두 개의 작은 따옴표 생각.

    이것은 내가 MSSMS에 실행하는 SQL입니다 :

    WHERE checktime >= '2019-01-24 15:01:36.000' AND checktime <= '2019-01-25 16:01:36.000'
    

    당신이 볼 수 있듯이 당신의 코드가 있어야합니다, 그래서 두 개의 작은 따옴표가있다 :

    string sqlFormattedDate = "'" + myDateTime.Date.ToString("yyyy-MM-dd") + " " + myDateTime.TimeOfDay.ToString("HH:mm:ss") + "'";
    

    MSSQL에서 또는 MySQL의 모든 문자열을 작은 따옴표를 사용합니다. 이게 도움이 되길 바란다.

  12. ==============================

    12.단지 당신은 "T"+ DateTime.Now.ToLongTimeString () + '2015년 2월 23일'를 넣어

    단지 당신은 "T"+ DateTime.Now.ToLongTimeString () + '2015년 2월 23일'를 넣어

  13. ==============================

    13.당신이 dateTime에있는 테이블을 업데이트 싶다면,이 예처럼 SQL 문자열을 사용할 수 있습니다 :

    당신이 dateTime에있는 테이블을 업데이트 싶다면,이 예처럼 SQL 문자열을 사용할 수 있습니다 :

    int fieldId;
    DateTime myDateTime = DateTime.Now
    string sql = string.Format(@"UPDATE TableName SET DateFieldName='{0}' WHERE FieldID={1}, myDateTime.ToString("yyyy-MM-dd HH:mm:ss"), fieldId.ToString());
    
  14. ==============================

    14.

       DateTime date1 = new DateTime();
    
        date1 = Convert.ToDateTime(TextBox1.Text);
        Label1.Text = (date1.ToLongTimeString()); //11:00 AM
        Label2.Text = date1.ToLongDateString(); //Friday, November 1, 2019;
        Label3.Text = date1.ToString();
        Label4.Text = date1.ToShortDateString();
        Label5.Text = date1.ToShortTimeString();
    
  15. from https://stackoverflow.com/questions/17418258/datetime-format-to-sql-format-using-c-sharp by cc-by-sa and MIT license