我将数据从BigQuery移动到Oracle数据库,并试图找到处理时间戳的最佳方法。 Oracle DB只能导入日期为小端格式的csv文件(dd / mm / yyyy hh:mi:ss)但默认情况下BigQuery仅支持big endian(yyyy-mm-dd hh:mi:ss)。
SELECT
t,
STRING(t) s
FROM
(SELECT TIMESTAMP(132456789101112) t)
Row t s
1 1974-03-14 01:33:09 UTC 1974-03-14 01:33:09.101112
我当然可以提取时间戳的不同组件并手动将它们粘贴在一起(见下文)或写一些聪明的UDF,但如果没有任何方法可以做到这一点,我会感到惊讶BigQuery的标准功能。这似乎是一件很平常的事情,事实上,我实际上犹豫要求一段时间。
SELECT
t,
CONCAT(
RIGHT(CONCAT("0", STRING(DAY(t))), 2), "/",
RIGHT(CONCAT("0", STRING(MONTH(t))), 2), "/",
RIGHT(CONCAT("000", STRING(YEAR(t))), 4), " ",
TIME(t)
) s
FROM
(SELECT TIMESTAMP(132456789101112) t)
Row t s
1 1974-03-14 01:33:09 UTC 14/03/1974 01:33:09
是否有类似FORMAT(t, "dd/mm/yyyy hh:mi:ss")
的方法或使用regexp的方法? (无需连接多个REGEXP_EXTRACT
。)
答案 0 :(得分:6)
SELECT STRFTIME_UTC_USEC(CURRENT_TIMESTAMP(), '%d/%m/%Y %H:%M:%S')
或您的示例
SELECT STRFTIME_UTC_USEC(TIMESTAMP(132456789101112), '%d/%m/%Y %H:%M:%S')
答案 1 :(得分:2)
对于那些使用Bigquery标准SQL的人来说,正确的方法是使用
$(document).ready(function(){
sigin();
});
function sigin()
{
$("#Idselection").show();
$("#cutname").hide();
$("#cpass").hide();
}
function signUp()
{
$("#Idselection").hide();
$("#cutname").show();
$("#cpass").show();
}
或<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="Idselection">
<option>opt1</option>
<option>opt2</option>
<option>opt3</option>
</select><br/>
<input id="cutname" type='text' placeholder="Customer Name" /><br/>
<input id="email" type='text' placeholder="Email *" /><br/>
<input id="pass" type='text' placeholder="Password *" /><br/>
<input id="cpass" type='text' placeholder="Confirm Password *" /><br/>
<input id="btnsigin" type='Button' onclick="sigin()" value="SignIn"/>
<br/>
<input id="btnsignup" type='Button' onclick="signUp()" value="Sign Up" /><br/>
取决于您的输入。
例如:
FORMAT_TIMESTAMP
将返回
FORMAT_DATE
答案 2 :(得分:1)
它不是一个简单的功能,但它确实起作用......
SELECT
t,
CONCAT( LPAD(STRING(DAY(t)),2,"0"),"/",LPAD(STRING(MONTH(t)),2,"0"),"/",STRING(YEAR(t))," ",TIME(t)) s
FROM (
SELECT
TIMESTAMP(132456789101112) t)