with type tipos operandos incompatible data conflicto con sql sql-server tsql

sql - tipos - operand type clash: date is incompatible with int



El tipo de operando clash: int es incompatible con la fecha+La instrucción INSERT entró en conflicto con la restricción FOREIGN KEY (5)

Esta expresión 12-4-2005 es un int calculado y el valor es -1997 . Debería hacer esto en lugar de ''2005-04-12'' con el '' antes y después.

create table pilot ( emp_num int, pl_license varchar (3), pl_ratings varchar (30), pl_med_type int, pl_med_date date, pl_pt135_date date, constraint PK_pilot primary key (emp_num) ) insert into pilot(emp_num,pl_license,pl_ratings,pl_med_type,pl_med_date,pl_pt135_date) values (101,''ATP'',''SEL/MEL/instr/CFII'',1,12-4-2005,15-6-2005) insert into pilot(emp_num,pl_license,pl_ratings,pl_med_type,pl_med_date,pl_pt135_date) values (104,''ATP'',''SEL/MEL/instr'',1,10-5-2005,23-3-2006) insert into pilot(emp_num,pl_license,pl_ratings,pl_med_type,pl_med_date,pl_pt135_date) values (105,''COM'',''SEL/MEL/instr/CFI'',2,25-2-2006,12-2-2005) insert into pilot(emp_num,pl_license,pl_ratings,pl_med_type,pl_med_date,pl_pt135_date) values (106,''COM'',''SEL/MEL/instr'',2,02-4-2006,24-12-2005) insert into pilot(emp_num,pl_license,pl_ratings,pl_med_type,pl_med_date,pl_pt135_date) values (109,''COM'',''SEL/MEL/instr/CFII'',1,14-4-2006,21-4-2006)

Mi pregunta es que hay un error en cada inserción.

Tipo de operando clash: int es incompatible con la fecha

¿Cómo arreglar esto?

También aquí ...

create table employee ( emp_num int, constraint PK_employee primary key (emp_num), foreign key(emp_num) references pilot(emp_num), emp_title varchar (4), emp_lname varchar (20), emp_fname varchar (30), emp_initial varchar (2), emp_dob date, emp_hire_date date, ) insert into employee(emp_num,emp_title,emp_lname,emp_fname,emp_initial,emp_dob,emp_hire_date) values (100,''Mr.'',''Kolmycz'',''George'',''D'',15-5-1942,15-3-1987) insert into employee(emp_num,emp_title,emp_lname,emp_fname,emp_initial,emp_dob,emp_hire_date) values (101,''Ms.'',''Lewis'',''Rhonda'',''G'',19-3-1965,25-4-1988) insert into employee(emp_num,emp_title,emp_lname,emp_fname,emp_initial,emp_dob,emp_hire_date) values (102,''Mr.'',''Vandam'',''Rhett'','' '',14-11-1958,20-12-1992) insert into employee(emp_num,emp_title,emp_lname,emp_fname,emp_initial,emp_dob,emp_hire_date) values (103,''Ms.'',''Jones'',''Anne'',''M'',16-10-1974,28-8-2005) insert into employee(emp_num,emp_title,emp_lname,emp_fname,emp_initial,emp_dob,emp_hire_date) values (104,''Mr.'',''Lange'',''John'',''P'',08-11-1971,20-10-1996) insert into employee(emp_num,emp_title,emp_lname,emp_fname,emp_initial,emp_dob,emp_hire_date) values (105,''Mr.'',''williams'',''Robert'',''D'',14-3-1975,08-1-2006) insert into employee(emp_num,emp_title,emp_lname,emp_fname,emp_initial,emp_dob,emp_hire_date) values (106,''Mrs.'',''Duzak'',''Jeanine'',''K'',12-2-1968,05-1-1991) insert into employee(emp_num,emp_title,emp_lname,emp_fname,emp_initial,emp_dob,emp_hire_date) values (107,''Mr.'',''Diante'',''Jorge'',''D'',21-8-1974,05-1-1991) insert into employee(emp_num,emp_title,emp_lname,emp_fname,emp_initial,emp_dob,emp_hire_date) values (108,''Mr.'',''Wlesenbach'',''Paul'',''R'',14-2-1966,18-11-1994) insert into employee(emp_num,emp_title,emp_lname,emp_fname,emp_initial,emp_dob,emp_hire_date) values (109,''Ms.'',''Travis'',''Elizabeth'',''K'',18-6-1961,14-4-1991) insert into employee(emp_num,emp_title,emp_lname,emp_fname,emp_initial,emp_dob,emp_hire_date) values (110,''Mrs.'',''Genkazi'',''Leighla'',''W'',19-5-1970,01-12-1992)

Msg 547, nivel 16, estado 0, línea 1 La instrucción INSERT entró en conflicto con la restricción FOREIGN KEY "FK__crew__emp_num__0F975522". El conflicto se produjo en la base de datos "melisa", tabla "dbo.employee", columna ''emp_num''. error en esta tabla

create table earndrating( emp_num int, constraint PK_earndarating primary key(emp_num, rtg_code), rtg_code varchar(6), foreign key (emp_num) references pilot(emp_num), foreign key(rtg_code) references rating(rtg_code), earningth_date varchar(20), ) insert into earndrating(emp_num,rtg_code,earningth_date) values(101,''CFI'',''18-Feb-98'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(101,''CFII'',''14-Dec-05'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(101,''INSTR'',''08-Nov-93'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(101,''MEL'',''23-Jun-94'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(101,''SEL'',''21-Apr-93'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(104,''INSTR'',''14-Jul-96'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(104,''MEL'',''29-Jan-97'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(104,''SEL'',''12-Mar-95'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(105,''CFI'',''18-Nov-97'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(105,''INSTR'',''17-Apr-95'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(105,''MEL'',''12-Aug-95'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(105,''SEL'',''23-Sep-94'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(106,''INSTR'',''20-Dec-95'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(106,''MEL'',''02-Apr-95'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(105,''SEL'',''10-Mar-94'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(109,''CFI'',''05-Nov-98'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(109,''CFII'',''21-Jun-03'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(109,''INSTR'',''23-Jul-96'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(109,''MEL'',''15-Marc-97'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(109,''SEL'',''05-Feb-96'' ) insert into earndrating(emp_num,rtg_code,earningth_date) values(109,''SES'',''12-May-96'' )


Intenta envolver tus fechas en comillas simples, como esto:

''15-6-2005''

Debería poder analizar la fecha de esta manera.


Para su información, esto resultó ser un problema para mí, ya que tenía dos tablas en una declaración como la siguiente:

SELECT * FROM table1 UNION ALL SELECT * FROM table2

Funcionó, pero luego se cambió el orden de las columnas en una de las definiciones de la tabla. Cambiando el * a SELECT column1, column2 solucionó el problema. ¡No tengo idea de cómo sucedió eso, pero aprendí la lección!


Tengo este problema y, en mi caso, la fecha está envuelta con ''(comilla simple) ... en mi caso, la declaración de inserción fue creada por Hibernate, por lo que no hay nada de malo ... tenemos muchas otras fechas en la misma tabla y todo funciona bien, excepto esta columna de fecha en particular. Es frustrante y la única forma de solucionarlo es pasar nulo para esa columna ... ¿Alguna idea?

insert into member_account (pension_nextdue_date, pension_nextrun_date, first_payment_date, fund_start_date, pension_escalation_percent) values (null, null, ''2014-04-28'', ''2014-02-02'', 12)

Eliminé otras columnas de la declaración de inserción anterior para hacerla pequeña ... pension_payment_date causa el problema ...

Verifiqué el tipo de columna y la tabla, todo está correcto y el tipo de esta fecha no es diferente a los otros en la misma tabla.


Yo tuve el mismo problema. Probé el formato ''aaaa-mm-dd'', es decir, ''2013-26-11'' y me deshice de este problema ...