Chúng tôi đang sử dụng cơ sở dữ liệu MySQL với FileMaker. Có vẻ như khi FileMaker đang đọc các bảng MySQL, nó sẽ chỉ chấp nhận ngày ở định dạng m/d/y.
Có cách nào tôi có thể nhận cơ sở dữ liệu MySQL của chúng tôi để thay đổi định dạng mặc định của nó thành M/D/Y thay vì Yyyy-MM-DD không?
Tôi biết tôi có thể sử dụng hàm Date_format [] trên các truy vấn chọn riêng lẻ nhưng tôi muốn xem liệu tôi có thể thay đổi định dạng mặc định không.
hỏi ngày 29 tháng 10 năm 2010 lúc 14:39Oct 29, 2010 at 14:39
Matt McCormickmatt McCormickMatt McCormick
12.9k22 Huy hiệu vàng74 Huy hiệu bạc83 Huy hiệu đồng22 gold badges74 silver badges83 bronze badges
1
Đọc thêm một chút Tôi thấy bạn có thể thay đổi định dạng cho một trường cụ thể nhưng không được khuyến khích.
Bạn không thể thay đổi định dạng lưu trữ
Bạn có thể đặt allow_invalid_dates và lưu ngày với định dạng bạn muốn nhưng tôi thực sự không khuyên bạn nên điều đó.
Nếu trường của bạn không được lập chỉ mục thì không có vấn đề trên Call DATE_FORMAT[]
khi bạn đang thực hiện chọn, thì vấn đề duy nhất là nếu bạn cần chọn trường cho trường đó trong trường hợp chỉ mục sẽ không được sử dụng vì bạn đang gọi hàm.
Dharman ♦♦
28.4K21 Huy hiệu vàng75 Huy hiệu bạc129 Huy hiệu đồng21 gold badges75 silver badges129 bronze badges
Đã trả lời ngày 29 tháng 10 năm 2010 lúc 14:49Oct 29, 2010 at 14:49
Gabriel Sosagabriel SosaGabriel Sosa
7,8584 Huy hiệu vàng38 Huy hiệu bạc48 Huy hiệu đồng4 gold badges38 silver badges48 bronze badges
2
Bí quyết là không thay đổi định dạng trong MySQL [dù sao nó cũng không được lưu trữ dưới dạng chuỗi], mà là để chỉ định định dạng bạn muốn khi bạn truy vấn nó.
Điều này có thể đạt được bằng cách sử dụng một cái gì đó như thế này:
SELECT date_format[mydatefield,'%m/%d/%Y'] as mydatefield FROM mytable
Hướng dẫn chính thức của MySQL cho điều này là tại đây: //dev.mysql.com/doc/refman/5.1/en/date-and-tin-pves.html#function_date-format
Nhân tiện, ngoài chủ đề nhưng tôi cảm thấy tôi nên đề cập đến nó: Tôi luôn khuyên bạn nên sử dụng MM/DD/YYYY làm định dạng ngày-bạn sẽ nhầm lẫn bất cứ ai từ bên ngoài Hoa Kỳ; Hầu như mọi quốc gia khác trên thế giới thường sẽ sử dụng DD/mm/yyyy. Nhưng cả hai định dạng đó đều mơ hồ - ý bạn là ngày nào khi bạn nói "12/05/2010"? Có lẽ là một cái khác với tôi, nhưng không thể thực sự biết bạn dự định làm tròn con đường nào.
Nếu bạn có ý định sử dụng ngày A cho mục đích hiển thị, tôi luôn hiển thị tháng dưới dạng từ hoặc viết tắt, vì điều này sẽ loại bỏ bất kỳ sự mơ hồ nào. Đối với mục đích đầu vào, hãy sử dụng điều khiển lịch để tránh bất kỳ sự nhầm lẫn có thể xảy ra.
Đã trả lời ngày 29 tháng 10 năm 2010 lúc 15:00Oct 29, 2010 at 15:00
Tôi không nghĩ bạn có thể, xem thay đổi định dạng ngày của MySQL.
Có các biến hệ thống được gọi là date_format
và datetime_format
có vẻ đầy hứa hẹn, nhưng nếu bạn cố gắng đặt chúng, bạn sẽ gặp lỗi và tài liệu nói rằng chúng 'không được sử dụng'.
Đã trả lời ngày 29 tháng 10 năm 2010 lúc 14:50Oct 29, 2010 at 14:50
Martin Claytonmartin Claytonmartin clayton
75.4K31 Huy hiệu vàng215 Huy hiệu bạc198 Huy hiệu đồng31 gold badges215 silver badges198 bronze badges
Tôi sử dụng cài đặt WAMP và thường chỉ cần tạo một cột INT[10]
và sau đó lưu trữ các ngày của tôi như thế này:
UPDATE `test` SET `dateandtime` = DATE_FORMAT[ NOW[], '%y%m%d%H%i' ] WHERE `id` =1234;
Điều này lưu trữ 2013-11-22 12:45:09
dưới dạng một số như 1322111245
. Vâng, nó có thể được coi là "không đúng" nhưng tôi không quan tâm. Nó hoạt động, và tôi có thể sắp xếp dễ dàng và định dạng trên máy khách theo bất kỳ cách nào tôi thích.
Điều này rõ ràng không được đề xuất nếu bạn dự kiến sẽ chạy bất kỳ chức năng ngày nào khác, nhưng đối với tôi, tôi thường chỉ muốn biết bản cập nhật cuối cùng của bản ghi và sắp xếp kết quả được đặt theo ngày.
Đã trả lời ngày 4 tháng 3 năm 2013 lúc 23:45Mar 4, 2013 at 23:45
Tim timtim
3.7355 huy hiệu vàng34 Huy hiệu bạc38 Huy hiệu đồng5 gold badges34 silver badges38 bronze badges
SELECT COUNT[field_name] AS count_it FROM table_name WHERE DATE_FORMAT[date_field,'%Y-%m-%d'] = DATE_FORMAT[CURDATE[], '%Y-%m-%d']-- to count records for today.
Đã trả lời ngày 16 tháng 5 năm 2013 lúc 4:33May 16, 2013 at 4:33
Romancha Kcromancha KCRomancha KC
1.4771 Huy hiệu vàng13 Huy hiệu bạc12 Huy hiệu đồng1 gold badge13 silver badges12 bronze badges
SELECT DATE_FORMAT[NAME_COLUMN, "%d/%l/%Y %H:%i:%s"] AS 'NAME'
Đã trả lời ngày 16 tháng 5 năm 2017 lúc 14:32May 16, 2017 at 14:32
2