warum bekomme ich "arthemtic überlauffehler beim konvertieren von expression in den int-Datentyp beim konvertieren Sie den code unten?
Create table COSTUMER(
[Costumer ID] int,
[Costumer Phone number] int,
[Costumer Date of Birth] int,
[Costumer Address] text,
[Costumer Name] varchar(40),
[Costumer Buisness if applicable] varchar(40)
);
Erstellt habe ich die OBIGE Tabelle mit der entsprechenden Spalten und Zeilen und haben versucht, das einfügen von Daten in die Tabelle durch einfügen den folgenden code, aber immer Msg 8115, Ebene 16, Status 2, Zeile 1 "arthemtic überlauffehler beim konvertieren von expression in den int-Datentyp" Die Anweisung wurde beendet Fehler.
Ich muss etwas falsch, aber ich sehe es nicht :p
INSERT INTO COSTUMER
([Costumer ID],[Costumer Phone number],[Costumer Date of Birth],[Costumer Address]
,[Costumer Name],[Costumer Buisness if applicable])
VALUES (24,07956485211,27/08/1993,'311 Fullwell avenue','Mohamed Ahmed','TESCO')
BITTE HELFEN
- Auch deine Tabelle ist
Costumer Date of Birth
ist int, und Sie versuchen, speichern Sie ein Datum in diesem Feld. - welchen Datentyp würden Sie empfehlen, die ich für dob? thnks
- deine Telefonnummer übersteigt INT.
- Verwenden
DATE
oderDATETIME
wenn Sie brauchen, um die Zeit als gut. - Ist es
SQL Server
,MySQL
oderPostgreSQL
? - Die Klammer-Schreibweise sagt SQL-Server habe ich gereinigt, bis die tags.
- BTW, eine Telefonnummer ist keine ganze Zahl, nicht einmal in der Nähe. Eine Telefonnummer ist wirklich ein string (in verschiedenen Formaten, je nach Land), die in der Regel digitale Zeichen enthält. Sie sind auch Rechtschreibung "business" und "customer" - falsch, jeder, der stecken bleibt, der Umgang mit dem Tisch Los ist, dich zu hassen.
- ja habe es von der syntax, aber der Kommentar gemeint war, für die OP zu klären, um Verwirrung zu vermeiden. BTW, dein name alias sollte
mu is too long
eher 🙂 - Ich möchte wirklich wissen, ob dies ist eine Datenbank für den professionellen Kostüm-Macher ...
- Nein, es ist nicht. trainiere für mein zweites Jahr an der Universität
Du musst angemeldet sein, um einen Kommentar abzugeben.
Immer Sie geeignete Datentypen für die Daten, die Sie speichern. In Ihrem Fall sollten Sie
DATE
oderDATETIME
Datentyp für das Datum der Geburt Spalte.Tabelle Definition
INSERT-Anweisung
Hinweis
Verwenden auch mehr als eine Spalte zum speichern von Adresse , Spalten Verwenden, wie .....
Ihre aktuelle schema verstößt gegen die grundlegenden Regeln der Datenbank normilization.
Customer
nichtCostumer
macht das Leben leichter 🙂-
ist es besser , die Verwendung von string-Datentyp für die Telefonnummern, da ich nicht denke die Sie jemals gesehen haben zu tun, keine mathematischen Berechnungen, die auf Telefonnummern daher gibt es keine Notwendigkeit zu verwenden INT-Datentyp für Sie.Dies ist, weil Sie versuchen, legen Sie eine Handy-Nummer als INT. Es muss wohl ein VARCHAR/NVARCHAR-Wert.
Und als user2989408 sagt, das Datum der Geburt zu einem DATE-oder DATETIME.
INSERT INTO COSTUMER ([Costumer ID],[Costumer Phone number],[Costumer Date of Birth],[Costumer Address] ,[Costumer Name],[Costumer Buisness if applicable]) VALUES (24,'07956485211','27/08/1993','311 Fullwell avenue','Mohamed Ahmed','TESCO')
Dem arithmetischen überlauf Fehler ist, weil Sie versuchen, Sachen, Daten in eine Spalte, deren Datentyp nicht 'groß' genug ist, um die Daten, die Sie versuchen, in Sie. In anderen Worten, der Maximalwert für den Datentyp INT ist 2.147.483.647 (siehe Referenz unten).
Je nachdem, wie die Telefonnummer, die verwendet werden soll, würde ich es speichern als bigint anstatt int. Bigint nehmen bis zu 8 Byte Speicherplatz (gleiche Referenz unten), in der Erwägung, dass für eine Telefonnummer, die ist 11-stellig (in deinem post 07956485211) einen CHAR-Datentyp wird bis 11 Byte und ein varchar dauert bis 13 Byte (siehe Referenz unten)
Referenzen:
http://msdn.microsoft.com/en-us/library/ms187745.aspx
http://msdn.microsoft.com/en-us/library/ms176089.aspx