none
sql server base de datos RRS feed

  • Pregunta

  • buenas tardes quisiera saber si alguien me podrian ayudar con la base en la tabla prestamos quiero que las fechas se me guarden en formato dia/mes/año enserio si alguien me podria ayudar se los agradeceria muchisimo

    create database BDINJI
    Go

    Use BDINJI
    GO

    Create Table Grados(
    IDgrado int IDENTITY(1,1),
    Grado varchar (20),
    Constraint PK_Grado Primary Key(IDgrado)
    )

    Create table Autores(
    IDautor int IDENTITY(1,1) Primary key,
    Nombrecompleto varchar(60),
    )

    Create Table Alumnos(
    NIE int NOT NULL,
    Nombre1 varchar(25),
    Nombre2 varchar(25),
    Apellido1 varchar(25),
    Apellido2 varchar(25),
    Idgrad int,
    Constraint PK_Alumno Primary Key(NIE),
    Constraint FK_grado Foreign Key(IDgrad)
    References Grados(IDgrado)
    ON UPDATE CASCADE
    ON DELETE CASCADE
    )

    Create Table Distribuciones(
    IDdistribucion int IDENTITY(1,1) Primary key,
    Nombre varchar(50),
    Pais varchar(15)
    )

    Create Table Categorias(
    IDcategoria int IDENTITY(1,1) ,
    Nombre varchar(50),
    Descripcion varchar(150),
    Constraint PK_categoria Primary Key(IDcategoria)
    )

    Create Table Libros(
    IDlibro varchar(15) NOT NULL Primary Key,
    Titulo varchar(50),
    Editorial varchar(20),
    Stock int,
    Ubicacion varchar(20),
    IDdistri int Foreign Key(IDdistri) References Distribuciones(IDdistribucion),
    IDcate int Foreign Key(IDcate) References Categorias(IDcategoria)
    ON UPDATE CASCADE
    ON DELETE CASCADE
    )

    Create Table Autores_Libros(
    ID_libro varchar(15) NOT NULL Foreign Key(ID_libro) References Libros(IDlibro),
    ID_autor int IDENTITY(1,1) Foreign Key(ID_autor) References Autores(IDautor),
    )


    Create Table Bibliotecarios(
    IDbibliotecario int IDENTITY(1,1),
    nombre1 varchar(25),
    nombre2 varchar(25),
    apellido1 varchar(25),
    apellido2 varchar(25),
    usuario varchar(20),
    contraseña varchar(15),
    Constraint PK_bibliotecario Primary Key(IDbibliotecario)
    )

    Create Table Prestamos(
    IDprestamo int IDENTITY(1,1) ,
    ID_libro varchar(15) NOT NULL Foreign Key(ID_libro) References Libros(IDlibro),
    NombreLibro varchar(50),
    NIEprestamo int NOT NULL,
    NombreAlumno1 varchar(25),
    NombreAlumno2 varchar(25),
    ApellidoAlumno1 varchar(25),
    ApellidoAlumno2 varchar(25),
    IDgra int,
    IDBibliotecarioPrestamo int NOT NULL,
    Fecha_entrega date, 
    Fecha_devolucion date,
    Constraint PK_Prestamo Primary Key(IDPrestamo),
    Constraint FK_NIEPrestamo Foreign Key(NIEPrestamo)
    References Alumnos(NIE),
    Constraint FK_BibliotecarioPrestamo Foreign Key(IDBibliotecarioPrestamo)
    References Bibliotecarios(IDBibliotecario)
    ON UPDATE CASCADE
    ON DELETE CASCADE
    )



    insert into Bibliotecarios values('Mariano','Ernesto','Argueta','Ramirez','Mari','12345')
    insert into Distribuciones  values ('Propios', 'El Salvador')
    insert into Categorias values ('CAT2','mexico');
    insert into Distribuciones values ('distribucion1','guatemala')
    insert into Autores values ('gerardo')


    insert into Grados values ('1er año A')
    insert into Grados values ('1er año B')
    insert into Grados values ('1er año C')
    insert into Grados values ('1er año D')
    insert into Grados values ('1er año E')
    insert into Grados values ('2do año A')
    insert into Grados values ('2do año B')
    insert into Grados values ('2do año C')
    insert into Grados values ('2do año D')
    insert into Grados values ('2do año E')
    insert into Grados values ('3er año A')
    insert into Grados values ('3er año B')
    insert into Grados values ('3er año C')


    select * from Prestamos
    --1 crear procedimiento
     CREATE PROCEDURE ingresarlibro
    @IDLibros varchar(15),
    @IDAutores int,
    @titulo varchar (20),
    @Editorial varchar (20),
    @Stock int,
    @ubicacion varchar (20),
    @IDdistri int,
    @IDcate int,
    @Nombrecompleto varchar (30)
    AS
    SET IDENTITY_INSERT Autores ON

    SET @IDAutores = (select IDautor from Autores where IDautor = (select max(IDautor) From Autores));
    INSERT INTO Autores (IDautor, Nombrecompleto)
    VALUES (@IDAutores+1, @Nombrecompleto);

    SET IDENTITY_INSERT Autores OFF

    INSERT INTO Libros
    (IDlibro, Titulo, Editorial, Stock,Ubicacion,IDdistri, IDcate)
    VALUES (@IDLibros, @titulo, @Editorial, @Stock, @ubicacion, @IDdistri, @IDcate);
    SET IDENTITY_INSERT Autores_Libros ON
    INSERT INTO Autores_Libros (ID_libro,ID_autor)
    VALUES (@IDLibros,@IDAutores+1);
    SET IDENTITY_INSERT Autores_Libros OFF
    go

    miércoles, 24 de octubre de 2018 0:49

Respuestas

  • [...] quiero que las fechas se me guarden en formato dia/mes/año [...]

    No, no es posible hacerlo tal como lo tienes. Has definido las fechas con el tipo Date, y ese tipo no guarda formato. Es un binario, lo que almacena es el número de días transcurridos desde una cierta fecha de origen. El formato que ves cuando presentas ese campo lo pone la aplicación cliente con la que muestras el dato, no está almacenado en la base de datos.

    Si quieres guardar con formato, tienes que cambiar el Date por un Varchar y hacer que la aplicación que graba haga primero la conversión de fecha a cadena aplicando el formato, y salve la cadena ya formateada. Con carácter general esto suele ser bastante mala idea, y si realmente se presenta la necesidad de hacerlo normalmente indica un mal diseño de la aplicación y/o la base de datos. Lo ideal es salvar las fechas como Date (es decir, como las tienes), y aplicar los formatos en la aplicación cliente, siendo consciente de que dichos formatos no solo no están almacenados en el servidor sino que ni siquiera existen en el servidor.

    • Propuesto como respuesta Pablo Rubio jueves, 25 de octubre de 2018 16:36
    • Marcado como respuesta Pablo Rubio domingo, 28 de octubre de 2018 4:21
    miércoles, 24 de octubre de 2018 6:26