在mysql中如何将06Aug 2010 03:41:44 GMT+00:00转换为mm/dd/yy时间?
我基本上是想对这个SentDate列进行排序(数据是从外部源填充的)。我也可以在c#中这样做。
发布于 2010-08-19 22:04:13
如果要在select语句中转换它,请使用following
SELECT DATE_FORMAT(date, '%m/%d/%y')
FROM TableName如果你想用代码来做这件事。
DateTime dt = Convert.ToDateTime(mySqlCommand.ExecuteScalar());
string strDateTime = dt.ToString("MM/dd/yy");希望这能有所帮助。
发布于 2010-08-19 21:36:07
如果想要获取日期时间字段的特定格式,可以这样做:
select
concat(
month(date_field),
"/",
day(date_field),
"/",
year(date_field)
)
as
formatted_date
from
myTable;
order by
date_field asc;但是,我不确定这是否适用于其他字段类型-尽管可能很好,所以可以尝试一下。
发布于 2010-08-19 21:41:21
等一下。是要将其转换为mm/dd/yy格式,还是要按日期/时间排序?这两个不利于对方。
排序
如果该列已经是MySQL中的datetime列,则可以正常对其进行排序:
var query = db.MyTable.Where(...)
.OrderBy(row => row.SentDate);如果该列是字符串列(varchar),则需要在从数据库读取数据时将其转换为DateTime对象,然后在C#中对其进行排序。例如:
var query = db.MyTable.Where(...)
.AsEnumerable()
.Select(row => new { row, Sent = DateTime.Parse(row.SentDate) })
.OrderBy(inf => inf.Sent);对AsEnumerable的调用导致检索数据,因此DateTime解析和排序在C#中进行,而不是在DB中。
转换为mm/dd/yy
以您描述的格式将DateTime转换为string的一种方法是显式使用.ToString:
datetime.ToString("MM/dd/yy")另一种是使用美国-美国文化:
datetime.ToString("d", CultureInfo.GetCultureInfo("en-US"))然而,后者似乎使用个位数的月份。
一旦您将DateTime转换为这样的字符串,排序就没有意义了,因为您将按月份的第一个数字对其进行排序-没有人会发现这很有用。
https://stackoverflow.com/questions/3522270
复制相似问题