2012-11-12 5 views
0

세미나를 위해 PHP 스케줄러에서 작업하고 있습니다. 기본적으로 나는 같은 날에 같은 시간에 매주 한 번씩 만나는 세미나리스트를 가지고 있으며 정해진 수의 주를 운영합니다.PHP는 날짜/시간 - 요일 및 시간을 혼합합니다.

지금은 데이터베이스에 pkey, 시작 날짜, 종료 날짜, 세미나 이름 및 날짜와 시간을 나타내는 문자열이 있습니다.

지금 현재 모든 세미나의 시작 날짜와 종료 날짜를 비교하여 현재 실행중인 모든 세미나를 보여주는 페이지가 있습니다. 이제 저는 오늘 세미나 모임을 보여주기를 바랍니다.

일정 변수를 DATE로 설정해야한다고 가정합니다. varchar 문자열은 dect 테이프 수정 프로그램이었습니다.이 부분부터 시작할 위치조차 모르기 때문입니다.

요일과 시간을 [weekday] [time] 형식의 DATE 유형 변수에 저장하도록 SQL 변수를 어떻게 형식화합니까? 이것이 가능한가?

편집

수 있습니까 내 질문을 바꾸어 말하다 도움을 요청하고있는 무슨 이해 누군가? 내가 묻는 것을 분명히 할 수없는 것처럼 보인다.

예를 들어 MySQL 세미나가 수요일 오후 11시 14 분에서 12시 26 분에 시작하는 오후 7시에 있다고 가정 해 봅시다. 나는 수요일 VARCHAR 문자열로 저장 한 오후 7 시가 있고 StartDate와 EndDate는 날짜로 저장된다. 현재 진행중인 모든 세미나를 나열하는 데 문제가 없지만 현재 요일에 해당하는 요일에만 모임으로 필터링하고 싶습니다. 이 작업을 수행하려면 '수요일 오후 7시'를 DATE 변수로 바꾸고 일정에 대한 동일한 형식을 유지해야합니다.

답변

0

, 내가 직접 대답한다. 내가 아는 몇 명의 전문가와 강사와 이야기 한 후에 (나는 원하는 것을 이해하는 데 문제가 없었지만 ...) 기술적으로 불가능하다는 것을 알았지 만 해결 방법은 그 평일에있는 임의의 날짜를 선택하여 사용하는 것입니다 다음 주중 형식으로 항상 제시하십시오.

2

날짜를 문자열로 저장하는 것은 바람직하지 않습니다. MySQL에는 많은 수의 Date/Time functions이 포함되어 있습니다. 이 데이터를 DateTime datatype으로 저장하고 이러한 기능 중 하나를 사용하여 조작해야합니다. 예를 들어

:

-- returns 1 for Monday 
SELECT DATE_FORMAT(CURDATE(), '%w'); 
+0

그래, 내가 어떻게하는지 알았던 코드의 모든 부분을 만들면서 나는 이것을 placeholder로 사용했다. 이제 돌아가서 그것을 실제 DATETIME으로 바꿔야합니다. 제 질문은 어떻게 DATETIME을 주중 시간 : 분으로 표시 할 것입니까? –

+0

내 답변에 언급 된대로 ['DATE_FORMAT()'] (http : // dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html # function_date-format) –

1

MySQL은 'YYYY-MM-DD HH SS : MM'을 소요 날짜 형식에 대한 날짜와 'YYYY-MM-DD'에 대한.

당신이 그것을 저장하는 방법에 따라, 당신은 단지 DATE 열을 추가 한 다음 업데이트를 수행 할 수 있습니다 = 'date_string_col을'datecolumn 설정

업데이트 표를;

varchar col로 이제는 적절한 형식으로 저장해야합니다. 그렇지 않으면 형식을 지정된 것으로 변경해야합니다. 자세한 내용은

는 : 아무도 여기 내 질문을 이해 할 수 있었다 없기 때문에 http://dev.mysql.com/doc/refman/5.1/en/datetime.html

+0

답장을 보내 주셔서 감사합니다. 제 문제는 DATETIME 변수의 서식을 지정하여 특정 날짜가 아닌 일주일을 표시하는 것이고 가능한 경우 테이블의 모든 행을 표시하는 것입니다. DATETIME 평일은 현재 요일과 동일하며 현재 캘린더 날짜는 해당 기간의 시작일과 종료일 사이입니다. –

+0

확실합니다. 데이터를 파싱했음을 알면 다음 주를 사용하여 $ day 값과 비교해야합니다. $ FIRSTDAY와 $ LASTDAY 사이의 datecol – Michael