2010-06-18 4 views
0

datetime.now()를 틱으로 변환하고 싶습니다. 예를 들어 1800 년 6 월 18 일 오후 4 시가되고 싶습니다. 20100618160000이거나 이처럼 복잡한 숫자가 필요합니다. . 이 숫자와 데이터베이스의 다른 필드를 기본 키 조합으로 사용하여 데이터를 검색하려고합니다. 누군가가 저에게 동일한 코드를 보낼 수 있다면 PHP와 MySQL을 사용하고 있습니다. 감사.datetime을 php 및 mysql의 시간 표로 변환합니다.

SJ

답변

0

데이터를 검색하기 위해 기본 키 조합으로이 번호와 데이터베이스의 다른 필드를 사용하고 싶습니다.

아마도 좋은 생각이 아닙니다. 스크립트의 두 인스턴스가 동시에 호출 될 때 이론적으로 충돌 가능성이 있습니다. 안전 기본 키를 만들려면이 값을 다른 고유 값과 결합해야합니다.

질문에 대답하기 위해 microtime(true)은 마이크로 초를 하나의 긴 숫자로 갖는 현재 타임 스탬프를 제공합니다. strtotime()은 모든 미국식 시간을 시간 스탬프로 변환합니다.

+0

응용 프로그램이 아니라 데이터베이스에서 제출 한 datetime 값을 사용하여 충돌을 막을 수 있습니다. IE : NOW()/CURRENT_TIMESTAMP를 사용하여 값을 채우는 것이 좋습니다. –

+0

@OMG하지만 레코드를 삽입하기 전에 테이블을 잠글 때만 괜찮습니까? 또는 mySQL은 충돌시 두 번째 타임 스탬프에 무언가를 추가 할만큼 충분히 똑똑합니까? 결국 두 개의 다른 데이터베이스 연결이있는 두 개의 스크립트 인스턴스에 대해 이야기하고 있습니다. –

+0

@Pekka : 데이터베이스의 작업이 대기열에 있습니다. 격리 수준을 처리 할 때 약간의 mucking이 있지만 그렇지 않으면 삽입은 sequencial입니다. –

-1

number_format (($ time * 10000000) + 621355968000000000, 0, '.', ''); 여기서 $ time은 유닉스 타임 스탬프 값을 나타냅니다.

관련 문제