2017-10-08 3 views
0

SQLite3 데이터베이스에서 정수를 선택하려고 시도했지만 수정 된 정수가 나타납니다. 나는 수동으로 데이터베이스에 삽입 한 다음 명령 프롬프트 프로그램을 통해 그것을 선택하고 작동하는 것 같지만 node.js를 통해 선택하면 같은 숫자로 시작하지만 0으로 수정 된 일부 숫자로 끝나는 정수가됩니다. 당신이 볼 수 있듯이SQL 데이터베이스에 저장된 정수를 선택하여 0으로 변경된 정수

function createMessage(final){ 
     console.log('starting making message') 
     db.all('SELECT * FROM humblechannel',(err,row) =>{ 
      if(err){ 
       console.log("No Channels Found"); 
      } else{ 
       row.forEach((channel)=>{ 
        console.log(channel.channelID); 
        client.createMessage(channel.channelID,{ 
        embed : { 
         color: embedColor, 
         thumbnail:{ 
          url: "https://i.imgur.com/7Tr9b7e.png", 
          height: '333', 
          width: '2000' 
         }, 
         author : { 
          icon_url: client.user.staticAvatarURL 
         }, 
         fields: final, 
         footer: { 
          text: `You Can Find More Bundles At https://www.humblebundle.com` 
         }, 
         timestamp: new Date(), 
         } 
        }) 
       }) 
      } 
     }) 
    } 

This is the result of querying through SQLite3

This is the result the code above spits out into the console after doing the above insertion

, 그들은 분명히 다르다 : 다음은 코드입니다. 왜 이런 일이 발생합니까? 과 동일한 값 * 결과 대신에 캐스팅

SELECT CAST(channelID AS TEXT) AS channelID FROM humblechannel 

채널 ID :

+0

의 문자열이 Javascript를'Number.MAX_SAFE_INTEGER' (9007199254740991) –

+0

힌트보다는 원래 큰 정수입니다 : 위의 대답은 "예, 내가 사용 정수가 9007199254740991보다 더 크다"입니다 –

+0

예 감사합니다 힌트 롤 들어, 정수는 최대 안전한 정수 이상의 공정한 비트 그래서 나는 이것이 문제라고 생각합니까, 감사. – JamTheBean

답변

0

내가 대신 VARCHAR의 정수 그러나 임시 수정이 작업을 수행하는 것입니다 SQL 데이터 형식을 만들었어야했는데 알고 보니 이 경우