最近写了个后台代码需要从Oracle数据库中抽取数据,其中的一个抽取条件是按照日期,而oracle中的日期存储格式为8位字符。而不是真正的DateTime。在进行查找的时候需要进行格式转换。具体如下:
1,C#
/// <summary>
/// 将日期转化为查询用的格式(yyyymmdd)
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static string ConToString(DateTime dateTime)
{
if (dateTime != null)
{
return dateTime.ToString("yyyyMMdd");
}
return null;
}
/// <summary>
/// 将8位字符串(yyyymmdd)转化为标准的格式(yyyy&mm&dd)
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static string ConToFormatString(string dateTime, string token)
{
if (dateTime != null)
{
dateTime = dateTime.Insert(4, token);
dateTime = dateTime.Insert(7, token);
return dateTime;
}
return null;
}
/// <summary>
/// 将秒数转化为HH:MM:SS格式
/// </summary>
/// <param name="seconds"></param>
/// <returns></returns>
public static string ConToHHMMSS(int seconds)
{
int hour, minute, second;
hour = seconds / (60 * 60);
minute = (seconds - hour * 60 * 60) / 60;
second = seconds - hour * 60 * 60 - minute * 60;
return hour.ToString() + ":" + minute.ToString() + ":" + second.ToString();
}
/// <summary>
/// 获取Datetime?的日期值
/// </summary>
/// <param name="dte"></param>
/// <returns></returns>
public static string GetDateFromDateTime(DateTime? dte)
{
if (dte != null && dte.Value != null)
{
return dte.Value.ToString("yyyy-MM-dd");
}
return "";
}
2,SQL分为Oracle和SqlServer两种
Oracle:
select TO_CHAR(B.TASKEND, ‘YYYYMMDD’) from table B
SqlServer:
使用cast 或者 convert 后续补上