关于数据库存储日期格式问题

NEEZA哪吒 2021-04-20 09:21:57
问题1
A电脑保存数据,格式是:2021/4/19
B电脑保存数据,格式是:2021-04-19
结果就导致了,A电脑查询不到B录入的数据,B也查不到A录入的数据。在不重新录入的情况下,应该怎么解决?


问题2
能不能强制的,在录入数据的时候,要求电脑的格式必须是2021-01-01这种格式,如果不是这个格式,就禁止录入。或者是强制的把系统格式改成2021-01-01这样。
...全文
1169 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanqth 2021-04-20
  • 打赏
  • 举报
回复
问题1 : 在系统初始化时,统一指定日期格式:

  FormatSettings.ShortDateFormat := 'yyyy-mm-dd';
  FormatSettings.DateSeparator := '-';
问题2 同问题1
墨梅无痕 2021-04-20
  • 打赏
  • 举报
回复
另:了解一下 System.SysUtils.FormatDateTime()函数。
墨梅无痕 2021-04-20
  • 打赏
  • 举报
回复
怎么会呢?日期时间在内存中的表示都是一致的,只是显示格式因环境不同而不一致。数据库都有日期时间的数据类型的,你使用字符串来存储日期时间了?
秋天之落叶 2021-04-20
  • 打赏
  • 举报
回复
我的应用中参照网上例子修改的,应用启动时修改系统时间格式,你看看能不能用: procedure TFormMain.MYSetDateTimeFormat; const i = 100; var Buf: PChar; p: ^DWORD; begin GetMem(Buf, 100); GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, Buf, i); // 取当前用户设置,短日期格式。 if Trim(string(Buf)) <> 'yyyy/MM/dd' then begin SetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, PChar('yyyy/MM/dd')); // 设置短日期格式 // SetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLONGDATE, PChar('yyyy''年''M''月''d''日''')); // 设置长日期格式为 yyyy'年'M'月'd'日',“年月日”字符必须用单引号括起来。Delphi字符串里必须用两个单引号。 SetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, PChar('HH:mm:ss')); // 设置时间格式,24小时制 SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0, SMTO_ABORTIFHUNG, 10, @p); // 设置完成后必须调用,通知其他程序格式已经更改,否则即使是程序自身也不能使用新设置的格式 end; end;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧