日期数据处理

项目的开发中,让开发人员费神的一类数据就是日期型数据。

  • 首先来看在C#中,如何处理:
DateTime dt  =  DateTime.Now;
dt.Year;
dt.Month;
dt.Day;

这样可以得到当前日期的年月日,还可以通过.NET封装过的方示或是ToString()将日期转为任何需要的格式:

DateTime dt  =  DateTime.Now;
dt.ToShortDateString();
dt.ToShortTimeString();
dt.ToLongDateString();
dt.ToLongTimeString();
dt.ToString(
" yyyy-MM-dd " );
dt.ToString(
" yyyy年MM月dd日 " );

更为方便的是.NET还封装了Add方法,可以直接得到前一个星期或是后一个月的日期:

dt.AddYears( 1 );
dt.AddMonths(
1 );
dt.AddDays(
1 );
//  ......

手工创建DateTime类型的数据也很方便:

DateTime dt  =   new  DateTime( 2007 , 12 , 3 )
  • 对于JavaScript来说,就没有那么多现成的函数可以使用了。

得到当前日期的方法如下:

var  dt  =   new  Date();
alert(dt.getDate());          
//  日期
alert(dt.getMonth()  +   1 );   //  月,在JS中月是由0开始的,因此要加1
alert(dt.getFullYear());      //  年
alert(dt.getDay());            //   星期

在JavaScript中使用new 得到的dt并不是以我们习惯的yyyy-MM-dd的形式展现的,而是使用ISO 表达式,因此如果要显示常规的日期格式,还需要写一些工具函数,使其得到转换。在此略。

同样,JavaScript也并没有为开发人员封装添加月或年等日期的方法,这仍然需要开发人员花费一点时间,去编写一个函数。在此略。

  • 在数据库中的处理

得到系统日期和时间:

    SELECT  SYSDATE  FROM  DUAL

将一个字符串转为日期型:

SELECT  TO_DATE( ' 2007-11-03 ' , ' yyyy-mm-dd hh24:mi:ss '
FROM  DUAL

将日期型转为字符型:

SELECT  TO_CHAR(SYSDATE, ' YYYY-MM-DD '
FROM  DUAL

在DB2中,给定了日期、时间或,则使用函数可以单独抽取出年、月、日、时、分、秒及微秒各部分: 

YEAR (current timestamp)  
MONTH (current timestamp)  
DAY (current timestamp)  
HOUR (current timestamp)  
MINUTE (current timestamp)  
SECOND (current timestamp)  
MICROSECOND (current timestamp)  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Spark中的日期数据处理,可以使用Spark的DateType和TimestampType数据类型以及相关的函数和方法来处理。以下是一些常用的操作: 1. 将日期字符串转换为日期类型: ``` import org.apache.spark.sql.functions._ import org.apache.spark.sql.types.DateType val df = spark.createDataFrame(Seq(("2021-01-01"), ("2021-02-01"), ("2021-03-01"))) .toDF("date_string") val dfWithDate = df.withColumn("date", to_date(col("date_string"), "yyyy-MM-dd").cast(DateType)) dfWithDate.show() ``` 2. 获取日期的年、月、日等信息: ``` val dfWithYear = dfWithDate.withColumn("year", year(col("date"))) val dfWithMonth = dfWithDate.withColumn("month", month(col("date"))) val dfWithDay = dfWithDate.withColumn("day", dayofmonth(col("date"))) ``` 3. 计算日期差: ``` val dfWithDiff = dfWithDate.withColumn("diff_days", datediff(current_date(), col("date"))) ``` 4. 添加或减去指定的时间间隔: ``` val dfWithAddedInterval = dfWithDate.withColumn("added_interval", date_add(col("date"), 7)) val dfWithSubtractedInterval = dfWithDate.withColumn("subtracted_interval", date_sub(col("date"), 7)) ``` 5. 格式化日期为字符串: ``` import org.apache.spark.sql.types.TimestampType import java.text.SimpleDateFormat val dfWithTimestamp = df.withColumn("timestamp", to_timestamp(col("date_string"), "yyyy-MM-dd").cast(TimestampType)) val dfWithFormattedDate = dfWithTimestamp.withColumn("formatted_date", date_format(col("timestamp"), "yyyy/MM/dd")) dfWithFormattedDate.show() ``` 这些是一些常见的Spark日期数据处理操作。根据具体的需求,还可以使用其他函数和方法进行更复杂的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值