Hãy đăng ký thành viên để có thể dễ dàng trao đổi, giao lưu và chia sẻ về kiến thức đồ họa.
  1. Hãy đăng ký subscribe kênh Youtube mới của Việt Designer tại địa chỉ: Youtube.com/VietDesignerChannel để theo dõi các video về thiết kế đồ họa. Do trước đó kênh cũ bị Youtube quét không rõ lý do, trong thời gian chờ kháng cáo nếu các bạn thấy video trên diễn đàn bị die không xem được thì có thể vào kênh mới để tìm xem video sơ cua nhé.
    Loại bỏ thông báo

Hỏi kiến thức SQL Server

Chủ đề thuộc danh mục 'Hỏi đáp - Tư vấn về tin học, máy tính' được đăng bởi vhquocminhit, 23/12/12.

Lượt xem: 4,251

  1. vhquocminhit Thành viên cấp 2

    [Hỏi Ngu] Bạn nào cho mình hỏi cái này.
    Mình có 1 đoạn code đơn giản như sau:
    create proc ngaysinh(@MASV NVARCHAR (10))
    AS
    DECLARE @HOTEN NVARCHAR (50)
    DECLARE @NGAYSINH SMALLDATETIME
    SELECT @HOTEN=HODEM+' '+TEN, @NGAYSINH=NGAYSINH FROM SINHVIEN WHERE MASV=@MASV
    PRINT @HOTEN+N' Sinh ngày: '+ @NGAYSINH

    Mình muốn hỏi là khi mình Print thì nó lại hiện ra thông báo lỗi:
    "Msg 295, Level 16, State 3, Procedure ngaysinh, Line 6
    Conversion failed when converting character string to smalldatetime data type"

    ==>>Mình nghĩ là Kiểu Chuỗi không thể + với Kiểu DATETIME được. Vậy ai có cách nào chỉ mình với. Thanks

    ...
  2. Winter16

    Winter16 Thành viên cấp 3

    Bạn up hình cả Database lên nữa mới bik là lỗi chỗ nào chứ bạn.!
    Nhìn lỗi giống như là sai kiểu dữ liệu ấy!
    vhquocminhit thích bài viết này
  3. evyl spirits

    evyl spirits Thành viên cấp 2

    ngaysinh(@MASV NVARCHAR (10) và DECLARE @NGAYSINH SMALLDATETIME . M học C chứ ko học SQL, nhưng thấy 2 dòng này có vấn đề...
    vhquocminhit thích bài viết này
  4. Winter16

    Winter16 Thành viên cấp 3

    học C# cũng phải học cái SQL mới viết được chương trình chứ! :D
    Nhưng mà sao cái lệnh DECLARE mình chưa sài bao giờ hèo ? :-B
    vhquocminhit thích bài viết này
  5. vhquocminhit

    vhquocminhit Thành viên cấp 2

    Dữ liệu mình không bị sai mà là do cách mình cộng chuỗi vs ngày nó kô đúng cú pháp. Ví dụ như chuỗi + số thì số phải được convert sang dạng string. Nghĩa là @Chuỗi+ str(@số).
    Còn bây giờ @chuỗi + Ngày tháng năm thì cộng như thế nào.
    Bạn giúp mình với. thanks
  6. vhquocminhit

    vhquocminhit Thành viên cấp 2

    Nó đúng rồi đó bạn, không sai đâu. hihi. vấn đề ở đây là cộng chuỗi với ngày sao thôi. ^^!
  7. banbaonylong

    banbaonylong Ko phải assmin

    mình học SQl rồi nhưng phần này ko xài, do nếu app hay web cần truy suất tương tự vậy thì mình chỉ tạo procedure

    PHP:
    @key nvarchar(30)
    AS
    BEGIN
    SELECT HODEM
    TENNGAYSINH FROM SINHVIEN WHERE MASV like  '%'+@key+'%'
    END
    rồi cộng chuỗi ra code làm =))
    vhquocminhit thích bài viết này
  8. evyl spirits

    evyl spirits Thành viên cấp 2

    m ko hiểu phép + trong SQL nhưng với C, lệnh prinf thì bạn cứ để 2 đối tượng trong ngoặc đơn, phân cách 1 dấu phảy... còn bạn muốn chuỗi + ngày tháng năm sau đó ra kiểu nào? Trong SQL có "ép kiểu" ko?
    M học thuần C, ko động đến C++ hay C# j
  9. Winter16

    Winter16 Thành viên cấp 3

    C# dễ hơn 2 cái kia mà ứng dụng rộng hơn nhiều, mình khuyên bạn nên thử wa nó :D
  10. banbaonylong

    banbaonylong Ko phải assmin

    =.= nói thế nói làm j?

    C là low level language trong khi C# higher level hơn. Bợn có thể viết auto, bắt ID process của chương trình bằng C chứ C# đố bợn viết đc!!!
  11. Eminem

    Eminem Cựu quản trị

    Lệnh Decalare dùng khi khai báo biến trong thủ tục.
  12. banbaonylong

    banbaonylong Ko phải assmin

    nếu bỏ biến trên dòng AS thì ko cần declare
    Eminem thích bài viết này
  13. vhquocminhit

    vhquocminhit Thành viên cấp 2

    Mình chẳng hiểu.hi. VÌ thứ 3 ni mình thi SQL mà giờ đang gặp rắc rối cái đó, hic. ko bik cái @key bạn khai báo để làm gì nhỉ :D.
  14. banbaonylong

    banbaonylong Ko phải assmin

    mhập masv vào, trả về info :)
    vhquocminhit thích bài viết này
  15. Winter16

    Winter16 Thành viên cấp 3

    Mình nghe mấy thầy cô chém thế chứ mới viết đc vài chương trình với C# àh :D
  16. vhquocminhit

    vhquocminhit Thành viên cấp 2

    Cuối cùng cũng tìm ra cách convert :))
    Convert(nvarchar(20),@NGAYSINH,101)

Ủng hộ diễn đàn