0

我想以如下格式将日期和时间插入数据库:

“2013 年 5 月 20 日 5:45”

如果我想以 2 分钟前、刚刚或 6 个月前等格式显示它,我该怎么做.. :)

任何人都可以建议我如何做到这一点,

提前致谢。

4

2 回答 2

1

尽管将日期/日期时间数据存储为字符串是完全错误的,但您可以使用ToString重载来指定格式:

var stringedDate = DateTime.Now.ToString("dd MM',' yyyy 'at' H':'mm");
于 2013-06-22T10:32:55.870 回答
1

数据库的存在是为了存储数据并让您提出和回答有关它们的问题。申请来来去去;数据可能永远存在。那么,你可能会问什么样的问题呢?当然,我们不知道问题域,所以这些只是猜测。

我们在过去 7 天内完成了多少订单?

SELECT COUNT(*) "Orders last week" FROM ORDERS
WHERE
     orderDate >= SYSDATE - 7  -- Oracle code

如果您已将日期转换为字符串,则无法执行此操作。

谁有过期的图书馆书籍?哪个?

SELECT u,id, u.first_name, u.last_name, b.id, b.book_name
FROM User u
JOIN Book b ON u.id = b.borrower_id
WHERE b.due_date < SYSDATE
AND b.returned = 0    -- Oracle doesn't have "BOOLEANS" yet.

你可以做日期算术;从日期数据中添加或减去一个数字会得到该日期之后或之前的许多天。有些函数会给出“日期后的下周二”或“一年中的第一天”。您将日期存储为字符串会为您关闭所有内容。

假设您需要为公司的法语部门格式化日期。你能用你的日期字符串做到这一点吗?为您的应用程序而不是数据库保留格式。

这是模型-视图-控制器架构重要性的一个例子。模型,即保存数据的部分,应该独立于任何特定的应用程序,因此它可以与任何应用程序一起工作,并且数据库当然是模型的一部分。

我不知道 C#,但类似的代码存在于 SQL-Server 中,我猜你会使用它。

于 2013-06-22T11:04:29.467 回答