2013年1月28日 星期一

跟時間有關的程式碼

2012-02-16 03:03:08 --年月日時分秒 (MySQL datetime 格式,秒)
MS SQL
SELECT CONVERT(varchar(256), GETDATE(), 120)

20120216061550 --年月日時分秒 (14位數,秒)
MS SQL
SELECT REPLACE(REPLACE(REPLACE(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')

20120216061550827 --年月日時分秒+毫秒 (17位數,毫秒)
PHP
echo date('YmdHis').substr(microtime(),2,3);MS SQL
SELECT REPLACE(REPLACE(REPLACE(REPLACE(CONVERT(varchar, getdate(), 121 ),'-',''),' ',''),':',''), '.', '')

20120918 --年月日時分秒+毫秒 (17位數,毫秒)
MS SQL
SELECT CONVERT(varchar(100), GETDATE(), 112);

1329978860 Unix 時間戳 (10位數,秒)
PHP
echo time(); //當前時間
echo strtotime('2038-01-19 03:14:07'); //指定時間

1329979156615 Unix 時間戳再加毫秒 (13位數,毫秒)
PHP
echo time().substr(microtime(),2,3); //當前時間
Javascript
var now = new Date().getTime();

1329979274678252 Unix 時間戳再加微秒 (16位數,微秒)
PHP
echo time().substr(microtime(),2,6);

某段時間以前的日期
PHP
date('Y-m-d', strtotime("-2 weeks")) //兩週前的日期

資料庫欄位型態
smallint, 2 bytes, Unsigned:0 to 65535, 最多 5 位數
mediumint, 3 bytes, Unsigned:0 to 16777215, 最多 8 位數
int, 4 bytes, Unsigned: 0 to 4294967295, 最多10位數
bigint, 8 bytes: Unsigned: 0 to 18446744073709551615,最多 20 位數

鼎新 WorkFlow,日期都使用 Char 8 位數,年月日,不使用 date 型態。

其它
select to_days(now());
select from_days(700000);
select * FROM table WHERE to_days(now())-to_days(col)>90;


參考:
mssql 时间格式化
ATEPART 函数
DATEADD (Transact-SQL)

-----------------------------------------------------------

C#

DateTime timeNow= DateTime.Now; //電腦時間
DateTime timeUtcNow = DateTime.UtcNow; //utc時間

//timestamp 秒數 (當前時間減去 1970-01-01 00:00的秒數。)
Int32 currentTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;

//當前時間,一般格式
string currentSecond1 = DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss tt");
// 2016-05-20 01:00:00 下午
string currentSecond1 = DateTime.Now.ToString("yyyy-mm-dd hh:mm:ss");
// 2016-05-20 13:00:00
string currentSecond1 = DateTime.Now.ToString("yyyy-mm-dd hh:mm:ss.fff tt", System.Globalization.DateTimeFormatInfo.InvariantInfo));
// 2016-05-20 13:00:00.123 PM

//相差單位時間
DateTime d1 = DateTime.Now;
// do something
DateTime d2 = DateTime.Now;

//相差秒數
double dblDiffSecs = new TimeSpan(d2.Ticks - d1.Ticks).TotalSeconds;
int intDiffSecs = Convert.ToInt16(Math.Floor(dblDiffSecs)); //使用無條件捨去

//形式。除了Days,其它都是 double 型別
Days(不足一天刪去尾數) , TotalDays,  TotalHours, TotalMinutes, TotalSeconds

//另一種相差秒數
double diffSec = ((d2.Ticks - d1.Ticks) / 10000000);


C#)經過了多少秒之Ticks
C# 如何取得兩個 DateTime 日期之間的天數


沒有留言:

張貼留言