Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Cách nhập dữ liệu kiểu datetime?

  1. #1
    Ngày gia nhập
    03 2010
    Nơi ở
    ___Nghe _ An___
    Bài viết
    220

    Mặc định Cách nhập dữ liệu kiểu datetime?

    [IMG][/IMG]
    mình đã dùng cả kiểu '12/1/1998' nhưng bị báo lỗi
    còn kiểu 12/8/1991 thì có kết quả như trên cả nhà giúp với
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Reload

  2. #2
    Ngày gia nhập
    04 2009
    Nơi ở
    Hà Nội
    Bài viết
    733

    Trong sql thì giá trị của kiểu datetime là: năm/tháng/ngày. Bạn sử dụng hàm convert như sau:
    convert(datetime,time,tham_so).
    Ví dụ: convert(datetime,'2010/12/3',102).--->kq: 3/12/2010.
    convert(datetime,'12/03/2011',103) --->kq: 12/03/2011.
    Chi tiết hàm convert và các tham số này mời lên google với từ khóa: convert t-sql.
    Hỏi một câu thì chỉ dốt trong chốc lát.Nhưng nếu không hỏi thì bạn sẽ dốt suốt đời.

  3. #3
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Dữ liệu lấy ở đâu ra?

    Nếu tự ghi vào thì ghi theo dạng 'yyyymmdd'

    15/08/1981 ghi là '19820815' (đây là string nên có dấu nháy đàng hoàng)

    SQL Server sẽ tự động biết là nó cần chuyển string này thành DateTime

    SQL Server luôn luôn hiểu và không bao giờ lầm cách chuyển từ varchar(8) 'yyyymmdd' sang DateTime

    Không cần phải convert gì cả

  4. #4
    Ngày gia nhập
    04 2009
    Nơi ở
    Hà Nội
    Bài viết
    733

    Tại sao lại không phải convert? Với dữ liệu lấy từ datetimepicker thì sao? Đâu phải lúc nào data datetime cũng ở dạng string như của bạn. '19821234' gì gì đó. mà là '19151208' thì sao?
    Dữ liệu người dùng nhập là có nhiều dạng, ta phải chuyển về dạng thống nhất: ngày/tháng/năm để in ra. Có thể là: năm/tháng/ngày mà cũng có thể là: tháng/ngày/năm....
    Với một số hàm như ToShortDateTime hay ToString("dd/MM/yyyy") .... sẽ giúp ta định dạng được chuỗi datetime như mong muốn. Rồi tùy cơ mà convert trong sql server.
    Hỏi một câu thì chỉ dốt trong chốc lát.Nhưng nếu không hỏi thì bạn sẽ dốt suốt đời.

  5. #5
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Trích dẫn Nguyên bản được gửi bởi snake_programmer Xem bài viết
    Tại sao lại không phải convert? Với dữ liệu lấy từ datetimepicker thì sao? Đâu phải lúc nào data datetime cũng ở dạng string như của bạn. '19821234' gì gì đó. mà là '19151208' thì sao?
    Chủ đề bài chỉ hỏi làm cách nào để nhập ngày. Hộp thắc mắc này là đại cương về database. Nếu gọi theo mô hình ba lớp thì đây là lớp dữ liệu. datetimepicker (dot net?) thuộc về lớp giao diện người dùng.

    Trích dẫn Nguyên bản được gửi bởi snake_programmer Xem bài viết
    ta phải chuyển về dạng thống nhất: ngày/tháng/năm để in ra. Có thể là: năm/tháng/ngày mà cũng có thể là: tháng/ngày/năm....
    Trong T-SQL, dạng 'yyyymmdd' chính là dạng thống nhất. Người dùng dạng này không cần phải lo hệ thống theo Mỹ, Âu, Á hay gì cả.

    Trong hình của chủ để đưa ra, trị 15/08/1982 (không lồng trong dấu nháy) được nạp vào câu lệnh T-SQL sẽ được hiểu là một trị int. Và T-SQL rất sẵn sàng làm con toán 15/08/1982 = 0 (15 chia 8 rồi chia 1982) -> tức là ngày 01/01/1900. Nếu nạp ngày trên là '19820815' T-SQL tự động phân tích chuỗi varchar(8) này ra: 4 kt đầu là năm, 2 kt kế là tháng và 2 kt cuối là ngày. Không hiểu thì cứ tham khảo tài liệu T-SQL.

    Trích dẫn Nguyên bản được gửi bởi snake_programmer Xem bài viết
    Với một số hàm như ToShortDateTime hay ToString("dd/MM/yyyy") .... sẽ giúp ta định dạng được chuỗi datetime như mong muốn. Rồi tùy cơ mà convert trong sql server.
    Như trên
    Csharp và dot net thuộc về giao diện lớp ngoài cùng. Đương nhiên có cách định dạng (dùng param thì chỉ cần định loại) để đưa vào. Nhưng chủ đề có nói gì đến CSharp hay dot NET đâu?

  6. #6
    Ngày gia nhập
    04 2009
    Nơi ở
    Hà Nội
    Bài viết
    733

    Mặc định Cách nhập dữ liệu kiểu datetime?

    OK!Nhưng chắc chắn là theo ý niệm của người việt luôn là ngày/tháng/năm nên chủ thớt mới viết kiểu kia.
    Và nếu đã làm cái này thì chắc là đang học sql server và có khả năng là làm 1 app nào đó mà trên form có nhập datetime.
    1 cuộc tranh luận vui vẻ.
    Hỏi một câu thì chỉ dốt trong chốc lát.Nhưng nếu không hỏi thì bạn sẽ dốt suốt đời.

  7. #7
    Ngày gia nhập
    09 2010
    Bài viết
    487

    cái này em vừa xem trực tiếp ở máy của anh Quyền thì nếu tạo 1 query mới và paste vào nguyên các câu lệnh rồi sửa theo đinh dạng mm/dd/yyyy lại chạy đúng, ko hề sai.
    @anh snake: cái này chỉ là database em nghĩ ko nên kéo theo cái datetime picker vào nó ko đúng với những gì chủ topic hỏi rất dễ làm người khác khó hiểu.
    ps: em giải quyết vấn đề này cho anh âý xong rồi..
    Một mình ngồi khóc ngoài trời bão tố người đi...


  8. #8
    Ngày gia nhập
    03 2010
    Nơi ở
    ___Nghe _ An___
    Bài viết
    220

    hj cảm ơn cả nhà nhá
    tại vì đang mày mó SQL nên cứ hỏi hoài !
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Reload

Các đề tài tương tự

  1. ADO.NET nhập kiểu datetime từ datetimeinput vào sql server bị lỗi
    Gửi bởi hungzany trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 14-04-2013, 01:13 AM
  2. Gắn điều kiện khi nhập DateTime cho Control DateTimePicker trong WinForms C#
    Gửi bởi namnguyen1251 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 25-11-2011, 10:57 PM
  3. Lỗi nhập datetime vào csdl bị chuyển thành 01/01/1900
    Gửi bởi npq_a11 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 03-06-2011, 07:38 PM
  4. Dữ liệu dạng int và datetime sẽ nhận null khi textbox để trống
    Gửi bởi hoangmanhtung23 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 17-05-2011, 12:05 PM
  5. Hiển thị kiểu DateTime từ DataGrid lên ô nhập dữ liệu
    Gửi bởi nguyenhoa278 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 18-03-2011, 06:08 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn