복붙노트

[SQL] 날짜에서 시간을 제거하는 방법

SQL

날짜에서 시간을 제거하는 방법

데이터베이스의 필드 날짜는 다음 형식을 가지고 :

2012-11-12 00:00:00

나는 날짜에서 시간을 제거하고 같은 날짜를 반환하고 싶습니다 :

11/12/2012

해결법

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

    1.날짜는 VARCHAR 형식 변경에있는 경우 우선 날짜로 저장 날짜가 당신에게 두통을 많이 절약 할 수 있음을 먼저 그리고 그것은 가장 조만간 이루어집니다 무언가이다. 문제는 더 악화됩니다.

    날짜는 VARCHAR 형식 변경에있는 경우 우선 날짜로 저장 날짜가 당신에게 두통을 많이 절약 할 수 있음을 먼저 그리고 그것은 가장 조만간 이루어집니다 무언가이다. 문제는 더 악화됩니다.

    당신이 날짜를 일단 둘째하는 VARCHAR로 날짜를 변환하지 마십시오! 날짜 형식에 보관하고 필요한 날짜 형식을 얻을 수있는 응용 프로그램 측에서 서식을 사용합니다.

    이 당신의 DBMS에 따라 작업을 수행하는 여러 가지 방법이 있습니다 :

    SQL-Server 2008 및 이상 :

    SELECT  CAST(CURRENT_TIMESTAMP AS DATE)
    

    SQL-Server 2005 및 이전

    SELECT  DATEADD(DAY, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP), 0)
    

    SQLite는

    SELECT  DATE(NOW())
    

    신탁

    SELECT  TRUNC(CURRENT_TIMESTAMP)
    

    PostgreSQL을

    SELECT  CURRENT_TIMESTAMP::DATE
    

    당신이 당신의 보고서에 서식 문화의 특정을 사용해야하는 경우 당신은 명시 적으로 (예를 들어, 일 / 월 / 년) 수신 텍스트 상자의 형식을 명시 할 수 있습니다, 또는 당신은 해당 언어 관련 날짜 형식을 보여줍니다되도록 언어를 설정할 수 있습니다.

    어느 쪽이든이 훨씬 더 나은 서비스를 정렬 어떤 보고서에 할 수있다 영향을 SQL 내에서 VARCHAR로 변환으로 SQL의 외부 처리됩니다.

    당신은 / DATETIME에 데이터 유형을 변경하지 않을 수없는 경우 아직 보고서 서비스에 보내기 전에 SQL에서 날짜 (예를 들어, CONVERT (DATETIME, yourField))로 변환하고 위에 설명 된대로 처리합니다.

  2. ==============================

    2.단지 사용 (SQL에서)

    단지 사용 (SQL에서)

    SELECT convert(varchar, columnName, 101)
    

    MySQL은

    SELECT DATE_FORMAT(columnName, '%m/%d/%Y')
    
  3. ==============================

    3.나는이 방법이 매우 유용하다는 것을 발견했다. 그러나 그것은 단지 날짜에 날짜 / 시간 형식을 변환하지만 결코 덜 나는 그것을 필요에 대한 작업을 수행합니다. (난 그냥 보고서에 날짜를 표시하는 데 필요한 시간은 무관했다).

    나는이 방법이 매우 유용하다는 것을 발견했다. 그러나 그것은 단지 날짜에 날짜 / 시간 형식을 변환하지만 결코 덜 나는 그것을 필요에 대한 작업을 수행합니다. (난 그냥 보고서에 날짜를 표시하는 데 필요한 시간은 무관했다).

    CAST(start_date AS DATE)
    

    최신 정보

    (곰 염두에 나는 연수생 해요;))

    나는 당신이 SSRS를 사용하는 경우이 작업을 수행 할 수있는 쉬운 방법을 생각.

    실제로 필드가 보고서에있는 텍스트 상자의 속성을 변경하는 것이 더 쉽습니다. 오른쪽 클릭 필드> 수> 날짜 및 적절한 형식을 선택!

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

    4.개인적으로, 전체, 기본 날짜 값을 반환하고 클라이언트 코드에서이 형식을 것입니다.

    개인적으로, 전체, 기본 날짜 값을 반환하고 클라이언트 코드에서이 형식을 것입니다.

    그런 식으로, 해당 사용자에 대한 올바른 의미를 부여하기 위해 사용자의 로케일 설정을 사용할 수 있습니다.

    "11/12"는 모호합니다. 그것은이다 :

  5. ==============================

    5.

    SELECT DATE('2012-11-12 00:00:00');
    

    보고

    2012-11-12
    
  6. ==============================

    6.더 많은 정보를 위해이 참조 : SQL 서버의 날짜 형식을

    더 많은 정보를 위해이 참조 : SQL 서버의 날짜 형식을

    [MM / DD / YYYY]

    SELECT CONVERT(VARCHAR(10), cast(dt_col as date), 101) from tbl
    

    [DD / MM / YYYY]

    SELECT CONVERT(VARCHAR(10), cast(dt_col as date), 103) from tbl
    
  7. ==============================

    7.적어도 mysql을, 당신은 DATE (날짜)를 사용할 수 있습니다.

    적어도 mysql을, 당신은 DATE (날짜)를 사용할 수 있습니다.

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

    8.다음을 시도 할 수 있습니다 :

    다음을 시도 할 수 있습니다 :

    SELECT CONVERT(VARCHAR(10),yourdate,101);
    

    아니면 이거:

    select cast(floor(cast(urdate as float)) as datetime);
    
  9. ==============================

    9.이 SQL을 사용합니다 :

    이 SQL을 사용합니다 :

    SELECT DATE_FORMAT(date_column_here,'%d/%m/%Y') FROM table_name;
    
  10. ==============================

    10.전부의

    전부의

    SELECT CONVERT(DATE, GETDATE())         // 2019-09-19
    SELECT CAST(GETDATE() AS DATE)          // 2019-09-19
    SELECT CONVERT(VARCHAR, GETDATE(), 23)  // 2019-09-19
    
  11. from https://stackoverflow.com/questions/14279849/how-to-remove-time-from-datetime by cc-by-sa and MIT license