【发布时间】:2013-02-02 01:25:37
【问题描述】:
我目前正在创建一个集成了 SQL 连接的 Delphi 应用程序。
SQL 以 YYYY-MM-DD 格式存储其日期值,但是,当我在 Delphi 应用程序中读取这些值时,它们以 MM-DD-YYYY 格式读取。
我目前已经编写了代码来从我的数据库中读取日期的值,但是我在处理没有 2 个月整数或 2 天整数的值时遇到了问题。例如,2013 年 2 月 17 日的日期将被解读为“2/17/2013”
我当前的代码将日期分为日、月和年。它适用于完整日期(MM/DD/YYYY),因为它使用 Delphi 中的“复制”命令读取文本中的相应值。当它读取格式为 M/D/YYYY 的日期时,它不会从字符串中复制正确的值。
在我运行我的分离代码之前,有什么方法可以编辑字符串,以便它强制将字符串转换为 MM/DD/YYYY 的格式。我的想法是编写代码来检查字符串的格式,然后添加任何缺少的零:即将 2/17/2013 更改为 02/17/2013
我知道我可能正在做一些事情让自己变得更难,但这是我目前的代码,所以任何通过添加到我当前的代码来解决我的问题的帮助将不胜感激。
谢谢,A。
【问题讨论】:
-
数据库中字段的数据类型是什么?
-
想向我们展示您读取数据库字段值的位置吗?它可以提供很大帮助,但作为一个想法,您可以执行 Query.FieldMyDateTimeField.AsDateTime => TDateTime 值,然后您可以随意格式化,即 DateToStr(MyDateTimeValue, MyTFormatSettings);
-
它们是 mysql 中的日期时间值和我的 dlephi 应用程序中的字符串值 - 使用 Fields[i].AsString 从 DBGrid 读取值
-
我已更改代码以将值读取为 TDateTime 值,但是它们的格式与 MM/D/YYYY 相同。我将如何使用 TFormatSettings 来配置这些值的布局?谢谢,A
-
@user2057482 将变量声明为 TFormatSettings 并根据需要设置日期和/或时间格式,即 MyFormatSettings.Short|LongDateFormat、MyFormatSettings.Shot|LongTimeFormat 等。不要忘记 MyFormatSettings .Date|TimeSeparator 字符
标签: mysql sql database delphi date