숫자"date"에서 데이터베이스와 상호 작용하는 방법을 사용하여"일반"니다.

StackOverflow https://stackoverflow.com/questions/352311

문제

나는 이 데이터베이스를 사용하는 날짜 colomn 는 숫자 값을 대신의 날짜 값입니다.

그렇다,나는 그것을 변경할 수 있습니와 마우스 클릭만,모든 응용 프로그램을 사용하는 데이터베이스에 의해 만들어졌다 하나의 전임자(및 모두가 그냥 그것을 무시하고 구축합니다).그렇다면 내가 그것을 변경하는 날짜를 많이 af 응용 프로그램은 실패합니다.:(

만,나의 개요는 데이터베이스에 이르기까지,한 specfic 날짜를니다.나는 시도를 사용하여 드롭다운 목록에 있지만 당신이 말할 수 있습니다,천 옵션에서 하나의 목록은 몹시 불편에도,다.

오늘을 살고 있어요 작은 속도,피드,삼각형,한 곳을 위해 하루-달 년,하지만 어 왈츠에 숫자일에서 데이터베이스입니다.내가 가진 것을 계산하는 날짜를 뒤로 숫자 값이 어떻게 든...

이 있어야기 쉬운 솔루션입니다.오른쪽?



내가 사용하는 ASP vbscript()응용 프로그램에 대해,그것은에 대한 intraweb,그리고 나가는 데이터베이스에 액세스.

도움이 되었습니까?

해결책

언급 된 바와 같이 액세스는 귀하를 위해 숫자로 변환됩니다. 날짜는 숫자로 저장됩니다.

Dim rs As DAO.Recordset

Set rs = CurrentDb.OpenRecordset("TestTable")
rs.AddNew
rs!NumberDate = Now()  'Value stored, eg, 39791.4749074074 '
rs.Update

rs.MoveLast

'To show that it converts back to the correct date / time '
Debug.Print Format(rs!NumberDate, "dd/mm/yyyy hh:nn:ss")

편집 Re 의견 : 다음은 반환 된 날짜를 보여주는 작은 테스트입니다.

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

strFile = "C:\Docs\LTD.mdb"

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
       "Data Source=" & strFile & ";" & _
       "Persist Security Info=False"

strSQL = "SELECT NumberDate FROM TestTable WHERE NumberDate= #2008/12/7#"

rs.Open strSQL, cn, 3, 3
rs.MoveLast

MsgBox rs.RecordCount

다른 팁

맞아 .. 정말 쉬웠다. 나는 Remou의 답변을 받아 들일 것입니다. Where NumberDate = # 2008/12/7 #은 트릭을 수행합니다.

그러나이 문제에 가까워지기 위해 다음은 내 자신의 기능에 대한 해결책이 있습니다.

Function DateToNumeric(dayDate)
    DateToNumeric=DateDiff("d","31/12/1899",dayDate) +1 //yup
End Function

    response.Write("9/12/2008, should be 39791.<br /><br />")
    response.write("DateToNumeric('9/12/2008') gives: " &DateToNumeric("9/12/2008")& "<br />")
    response.write("CDate('39791') gives: " &CDate(39791)&"<br /><br />")
    response.write("BECAUSE CDate('1') gives: " &CDate(1))

산출:

2008 년 9 월 12 일, 39791이어야합니다.

DateTonumeric ( '9/12/2008')은 39791을 제공합니다
CDATE ( '39791')는 9-12-2008입니다

cdate ( '1')가 제공하기 때문에 : 31-12-1899

1899 년 31/12/1899가 제로가 아니라 첫날이되도록 만들어졌습니다. :/

감사합니다!

액세스 저장 날짜로 내부적으로 부동 소수점수(숫자 이후의 일 31.12.1899 또는 뭔가),당신은 시도를 사용하여 CDate()로 변환하 번호를 다시니까?당신이해야 할 수 있는 쿼리를 사용한다.

또 다른 가능성은 날로 저장된 숫자만으로 변환되지 않는다.(e31121899),이 경우에 당신을 얻을 수 있어야 적절한 날짜부품을 사용하거나 형식으로()또는 날()또는 한 달에()년().

이게 도움이 되었으면 좋겠습니다.

슬프게도 날짜는 39791-> 9-2008로 저장됩니다. 부동 소수점 번호.

날짜를 읽을 수있는 형식으로 변환하는 JavaScript 함수 (동일한 전임자가 작성)가 있습니다. 그것은 다른 방법으로, 나를 당황하게하는 그 숫자 값으로 돌아가는 길입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top