Office中国论坛/Access中国论坛

标题: 【源码】Fans.net的函数:Mysql数据中的时间戳转换为Access标准时间-FROM_UNIXTIME [打印本页]

作者: admin    时间: 2015-4-13 10:46
标题: 【源码】Fans.net的函数:Mysql数据中的时间戳转换为Access标准时间-FROM_UNIXTIME
与Fans.net 黄海 Zhengjialong等版主在讨论如何将淘宝的数据 分析出来,需要解决一个将mysql 的Mysql数据中的时间戳转换为Access标准时间
1.fans.net版主则提供一个VB VBA 及vb.net可使用的通用函数来转换

  1. ''' <sumary>
  2. ''' 把时间戳转换为标准时间
  3. ''' </sumary>
  4. ''' <param name="intTime">要转换的UNIX时间戳</param>
  5. ''' <param name="intTimeZone">该时间戳对应的时区</param>
  6. Function FromUnixTime(intTime, intTimeZone)
  7.     If IsEmpty(intTime) Or Not IsNumeric(intTime) Then
  8.          FromUnixTime = Now()
  9.         Exit Function
  10.     End If
  11.     If IsEmpty(intTime) Or Not IsNumeric(intTimeZone) Then intTimeZone = 0
  12.      FromUnixTime = DateAdd("s", intTime, "1970-1-1 0:0:0")
  13.      FromUnixTime = DateAdd("h", intTimeZone, FromUnixTime)
  14. End Function
  15.   中国的时区 可用 8
复制代码


2.我的方法 是直接使用mysql 内置的 FROM_UNIXTIME 格式化MYSQL时间戳函数
  1. 函数:FROM_UNIXTIME
  2. 作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示。
  3. 语法:FROM_UNIXTIME(unix_timestamp,format)
  4. 返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。
  5. 根据format字符串格式化date值。
  6. 下列修饰符可以被用在format字符串中:
  7. %M 月名字(January……December)
  8. %W 星期名字(Sunday……Saturday)
  9. %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
  10. %Y 年, 数字, 4 位
  11. %y 年, 数字, 2 位
  12. %a 缩写的星期名字(Sun……Sat)
  13. %d 月份中的天数, 数字(00……31)
  14. %e 月份中的天数, 数字(0……31)
  15. %m 月, 数字(01……12)
  16. %c 月, 数字(1……12)
  17. %b 缩写的月份名字(Jan……Dec)
  18. %j 一年中的天数(001……366)
  19. %H 小时(00……23)
  20. %k 小时(0……23)
  21. %h 小时(01……12)
  22. %I 小时(01……12)
  23. %l 小时(1……12)
  24. %i 分钟, 数字(00……59)
  25. %r 时间,12 小时(hh:mm:ss [AP]M)
  26. %T 时间,24 小时(hh:mm:ss)
  27. %S 秒(00……59)
  28. %s 秒(00……59)
  29. %p AM或PM
  30. %w 一个星期中的天数(0=Sunday ……6=Saturday )
  31. %U 星期(0……52), 这里星期天是星期的第一天
  32. %u 星期(0……52), 这里星期一是星期的第一天
  33. %% 一个文字“%”。
复制代码

例子:
SELECT FROM_UNIXTIME(1234567890, '%Y-%m-%d %H:%i:%S')
SELECT *,FROM_UNIXTIME(created, '%Y-%m-%d') as riqi FROM `rc_ms_users`
理论上,使用mysql内置的函数可能会快一些
3.用途:
    1).可分析淘宝的网页数据,产品的上下架时间等,也竞争对手产品上架时间错开,避免竞争(黄海的点子)
    2).其它网页数据收集用途



作者: zhengjialon    时间: 2015-4-13 10:54
我是来学习的,顶一个
作者: admin    时间: 2015-4-13 10:57
zhengjialon 发表于 2015-4-13 10:54
我是来学习的,顶一个

zhengjialon,好久没上来了,高手最近闭关在做什么项目?
作者: zhengjialon    时间: 2015-4-13 11:00
让站长见笑了,公司用的搞了好几年了。。。
作者: 风中漫步    时间: 2015-4-13 11:11
偷偷的问句:这些数据从那弄?
作者: fan0217    时间: 2015-4-13 11:15
  1. ''' <sumary>
  2.     ''' 把时间戳转换为标准时间
  3.     ''' </sumary>
  4.     ''' <param name="time">要转换的UNIX时间戳</param>
  5.     ''' <param name="timeZone">该时间戳对应的时区</param>
  6.     Public Shared Function FromUnixTime(time As Double, timeZone As Integer) As DateTime
  7.         Dim dtmStart As DateTime = New DateTime(1970, 1, 1, 0, 0, 0)
  8.         Dim t As DateTime = DateAdd(DateInterval.Second, CDbl(time), dtmStart)
  9.         Return DateAdd(DateInterval.Hour, timeZone, t)
  10.     End Function
复制代码
VB.NET

作者: admin    时间: 2015-4-13 11:33
fan0217 发表于 2015-4-13 11:15
VB.NET

vb.net 好像更精简些
作者: fan0217    时间: 2015-4-13 17:40
admin 发表于 2015-4-13 11:33
vb.net 好像更精简些

是的,语法上比VB更精简。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3