我正在使用SQLite来存储一些数据.主数据库位于NAS(Debian Lenny,2.6.15,armv4l)上,因为NAS运行的脚本每天都会更新数据.典型的"select*from tableX"如下所示:
2010-12-28|20|62.09|25170.0
2010-12-28|21|49.28|23305.7
2010-12-28|22|48.51|22051.1
2010-12-28|23|47.17|21809.9
Run Code Online (Sandbox Code Playgroud)
当我将数据库复制到我的主计算机(Mac OS X)并运行相同的SQL查询时,输出为:
2010-12-28|20|1.08115035175016e-160|25170.0
2010-12-28|21|2.39343503830763e-259|-9.25596535779558e+61
2010-12-28|22|-1.02951149572792e-86|1.90359837597183e+185
2010-12-28|23|-1.10707273937033e-234|-2.35343828462275e-185
Run Code Online (Sandbox Code Playgroud)
第3列和第4列的类型为REAL.有趣的事实:当数字是整数(即它们以".0"结尾)时,两个数据库之间没有区别.在所有其他情况下,差异是......嗯......令人惊讶?我似乎无法找到一种模式.
如果有人有线索 - 请分享!
PS:sqlite3 -version输出Debian:3.6.21(lenny-backports)Mac OS X:3.6.12(10.6)
启用类似的东西
logger.info("This is a formatted number: %.2f", number)
Run Code Online (Sandbox Code Playgroud)
我决定写一个子类org.apache.log4j.Logger.我知道,我本可以编写一个包装类来实现相同的结果但是因为我在运行时向记录器中添加了很多appender,所以我更喜欢使用继承.
子类看起来像这样:
public final class FormatLogger extends Logger {
private final static FormatLoggerFactory factory = new FormatLoggerFactory();
protected FormatLogger(String name) {
super(name);
}
public static Logger getLogger(String name) {
return Logger.getLogger(name, factory);
}
public void fatal(String formatter, Object... args) {
log(Level.FATAL, formatter, args);
}
public void log(Level level, String formatter, Object... args) {
if (super.isEnabledFor(level)) {
super.log(level, String.format(formatter, args));
}
}
}
Run Code Online (Sandbox Code Playgroud)
一切都很好 - 除了一件事之外:消息文本现在添加了记录器子类的名称,而不是调用记录器的类的名称.作为模式布局,我使用以下格式:
[%d{yyyyMMdd HHmmss}] %-5p [%t] %C: …Run Code Online (Sandbox Code Playgroud) 我有一个简单的cronjob每天18:35运行:
05 18 * * * ~/job.sh 2>&1 >> ~/job.log
Run Code Online (Sandbox Code Playgroud)
所以〜/ job.sh的输出应写入〜/ job.log.在job.sh中,有一些echo命令和一些python脚本被执行,例如:
echo 'doing xyz'
python doXYZ.py
Run Code Online (Sandbox Code Playgroud)
现在,无论python脚本产生什么输出,它们都不会写入〜/ job.log.我只在〜/ job.log中看到echo文本.如何将shell脚本的完整输出重定向到〜/ job.log?
我有一个包含几千个条目的数据库表.已在"名称"列中输入了一部分条目(~20%),其中包含一个完全大写的字符串.
例:
id | name
---------
1 | THOMAS GOLDENBERG
2 | Henry Samuel
3 | GIL DOFT
4 | HARRY CRAFT
5 | Susan Etwall
6 | Carl Cooper
Run Code Online (Sandbox Code Playgroud)
SQL查询如何在名称列中选择具有完全大写字符串的所有条目?(即在示例中:ID为1,3,4的那些)