0

目前,我有一个日期时间对象

DateTime theDateTime = DateTime.ParseExact(dateAndTime, "d MMMM yyyy hh:mm tt", provider);

它成功地将其转换为日期时间(从字符串),例如:

2012 年 7 月 6 日上午 9:30:00

我如何将其转换为 2012/07/06 09:30:00(24 小时格式)?这样我就可以使用 C# 将它插入到数据库中??

PS:我使用的是 Sybase SQL Anywhere 12,根据我的阅读,他们需要格式为年/月/日,时间为 24 小时格式,对吗?如果我错了,请纠正我。

4

2 回答 2

0

DateTime 本身没有格式。日期和时间在内部存储为数字。通常,数据库提供者的类负责将 DateTime 转换为正确的格式。

如果 Sybase 只接受格式化为字符串的日期,则需要使用 DateTime.ToString 方法并使用正确的格式字符串对其进行格式化。

你是如何构建插入命令的?您是使用数据库参数还是只是构建一个包含插入语句的字符串?

于 2012-07-06T01:57:28.520 回答
0

SQL Anywhere 12 的默认日期格式为 YYYY-MM-DD HH:NN:SS.SSS

这可以使用 timestamp_format 数据库选项进行配置/更改,但是:

timestamp_format 选项

该设置可以通过 SQL 永久更改,例如:

SET OPTION PUBLIC.timestamp_format = '<format here>';

或临时更改(基于每个连接),例如:

SET TEMPORARY OPTION timestamp_format = '<format here>';

当然,如果您的代码中已经有一个 datetime 对象,您应该能够将该值传递给参数化查询。它不必作为字符串传递。

于 2012-07-12T01:11:35.153 回答